5

Tengo una pregunta sobre la implementación del patrón de repositorio con mi modelo de datos. He buscado en línea y he investigado un montón de publicaciones, pero no encuentro ninguna respuesta que aclare mis dudas. Básicamente, nuestro modelo de dominio va por debajo de tenemos un objeto cliente que tiene muchos objetos secundarios y algunos objetos secundarios a su vez tendrán objetos secundarios y en cualquier momento estos objetos secundarios sin sus objetos principales no son necesarios y no lo son. tiene sentido en la aplicación.Agregado de patrón de repositorio y raíz de agregado con Entity Framework 4.0

client 
--> client zip codes 
--> client phone history 
--> client medical history 
--> client direct services 
     --> client direct service assessments 
     --> client direct service risk reductions 
--> client housing 
     --> client housing landlord 

y así es. Por lo tanto, a partir de la representación anterior, tengo algunos agregados y la raíz es el objeto del cliente, por lo que estaba pensando en crear un repositorio en el nivel raíz agregado que es el cliente. Mi pregunta es cómo manejo los demás agregados. ¿Puede alguien darme algunas ideas sobre esto?

Gracias, Ajay.

Respuesta

6

En general, es responsabilidad del repositorio preparar la raíz agregada para que la use el resto del programa. Por lo tanto, debe consultar el repositorio de un cliente y devolver un objeto de cliente completo completo con códigos postales, historial telefónico, historial médico, etc. La idea de una raíz agregada es que ningún código externo debe preocuparse por obtener clientes sin esos otros agregados disponibles.

Viéndolo de otra manera, ya que está creando un repositorio de clientes y el cliente es la raíz agregada, es tarea del repositorio del cliente componer todos los subobjetos, incluso si son agregados.

+0

así que básicamente significa que habrá solo un repositorio en el nivel del cliente que también cargará los agregados. Si eso es todo, entonces eso responde mi pregunta. Gracias Domenic. – ajay

+0

Sí, exactamente; solo habrá un repositorio en el nivel del cliente. Del mismo modo, habrá un repositorio en el nivel de proveedor. Cada raíz agregada obtiene su propio repositorio, generalmente. – Domenic

+0

ok que responde mi pregunta. Gracias de nuevo. – ajay

Cuestiones relacionadas