Soy nuevo en los modelos de dominio, POCO y DDD, por lo que todavía estoy tratando de entender algunas ideas.Al trabajar con modelos de dominio y clases POCO, ¿a dónde van las consultas?
Una de las cosas que no pude entender todavía es cómo mantener mis modelos de dominio simples y agnósticos al almacenamiento, pero aún así poder realizar algunas consultas sobre sus datos de manera enriquecedora.
Por ejemplo, supongamos que tengo una orden de entidad que tiene una colección de elementos de Ordem. Quiero obtener el artículo más barato, por cualquier razón, o tal vez una lista de artículos de pedido que no están actualmente en stock. Lo que no quiero hacer es recuperar todos los artículos de pedido del almacenamiento y filtrarlos más tarde (demasiado caros), así que quiero terminar teniendo una consulta db del tipo "SELECCIONAR ... DONDE ITEM.INSTOCK = FALSE" de alguna manera. No quiero tener esa consulta SQL en mi entidad, o cualquier variación de si eso me atara a una plataforma específica, como las consultas de NHibernate en Linq2SQL. ¿Cuál es la solución común en ese caso?
¿Habría inyectado este repositorio en la clase Order (algo que tiene un IOrderRepository como parte del constructor Order), o lo tendría fuera? Si es así, ¿qué tendrías en la clase de Orden? No estoy seguro de dónde está la regla de conocimiento/negociación de lo que es un artículo sin stock va –
. Quisiera pasar el repositorio a cualquier objeto de dominio que necesite un pedido. No creo que tenga mucho sentido que cada instancia de Orden tenga una referencia a su Repositorio de origen, aunque. – Morendil
@Morendil Estoy casi de acuerdo: una orden no debería saber nada sobre su repositorio, pero más allá de eso, el objeto de dominio * no * debe saber sobre * cualquier * repositorio. Si DomainObjectA necesita una instancia de DomainObjectB, algún coordinador de nivel superior debería hablar con sus repositorios y conectar cosas. –