2011-04-21 12 views
5

Tengo una pregunta sobre la unidad de trabajo y la implementación del repositorio utilizando contextos de objetos múltiples. Mi aplicación usa datos en 3 bases de datos. Entonces eso significa que tengo tres contextos de objetos cada uno representando una base de datos. Necesito obtener los datos de una base de datos pero tengo que filtrar los datos leyendo los criterios de filtro de las otras 2 bases de datos. Paso estos tres contextos de objeto al constructor unitofwork para tener acceso a los otros dos contextos de objeto en mi repositorio. He buscado mucho en internet pero no pude encontrar ninguna buena respuesta. ¿Puede sugerir por favor si lo estoy haciendo bien o hay una manera estándar de manejar este tipo de escenario?Unidad de trabajo y contextos de objetos múltiples

Gracias, Ajay.

Respuesta

4

Mantener los tres contextos en la unidad de trabajo es un camino a seguir, pero el significado real de tal implementación probablemente tendrá sentido una vez que necesite modificar los datos en más de una base de datos en la unidad de trabajo individual/transacción lógica. Hasta que tenga que enviar datos a múltiples contextos al mismo tiempo, su implementación se asemeja más a Contexto factory que unidad de trabajo. Pero eso solo se trata de nombrar su implementación. El significado de tu implementación es bueno.

Lo que no estoy de acuerdo es el hecho de que un repositorio esté leyendo filtros de otros contextos. El repositorio debe manejar solo sus propios datos/aggregate roots. Esa es la responsabilidad de la persona que llama (servicio comercial) para obtener filtros de otros contextos/repositorios y pasar el filtro al repositorio principal necesario para obtener los datos.

+0

Eso definitivamente tiene algo de sentido para mí. gracias por la respuesta. – ajay

+3

Me gustó la respuesta. Después de algunos años, me pregunto si puedes dar algunos consejos sobre cómo manejar múltiples DbContext con UoW. ¿Alguna guía? –

Cuestiones relacionadas