Ésta es mi comprensión acerca de DDD en la actualidad¿Está bien omitir el patrón de repositorio para consultas complejas?
- El patrón repositorio estricta sólo se debe aplicar get(), borrar() y crear(), y tal vez las variantes de get(), donde se puede buscar o para recuperar una colección entera
- es común que cada raíz agregada para tener un repositorio
(desde la investigación, sé los que no se acepta universalmente normas)
La pregunta aquí es cómo implemen t consultas complejas que involucran muchas raíces agregadas. Por ejemplo, tenemos dos raíces agregadas: producto y usuario. Si estoy haciendo una página que enumera qué productos ha comprado un usuario, entonces tengo una consulta que se extiende tanto en el agregado del usuario como en el agregado del producto.
¿Cómo debe implementarse esta consulta?
Lo que estoy haciendo ahora es en realidad tener un repositorio para esta consulta y consultas con funcionalidad relacionada (algunos no estarán de acuerdo y dicen que el repositorio no es una capa de consulta).
Use sólo el repositorio para el producto y el usuario, agarrar todos los registros y hacer todo en la memoria (esto suena mal)
Tener la consulta (LINQ o SQL) para estar dentro del servicio, no usando el repositorio asociado con los agregados en absoluto.
¿Hay alguna otra manera?
¿A quién detras le gusta comentar? – Dmitry
Me gustó más la respuesta de Szymon: fue muy sencillo en el punto en que las consultas se deben desacoplar de la capa de dominio/repositorio. – drogon
Usted vota menos cuando la respuesta no es útil. ¿El mío no fue útil? – Dmitry