Pregunta

En mis Repositorios, estoy haciendo asignaciones a los objetos de mi dominio a partir de las consultas de la Entidad Linq. Luego tengo una capa de servicio para actuar sobre estos objetos devueltos desde los repositorios.

¿Deben estar mis objetos de dominio en el repositorio de esta manera? ¿O deberían mis repositorios estar restringidos a las Entidades y Acceso a Datos, y en su lugar, mi capa de servicio debe hacer asignaciones a los objetos del dominio?

Hacer todas las asignaciones en el Repositorio parece más fácil, pero ahora la distinción entre mi base de datos y los objetos de dominio no es aparente. ¿Cuál es la práctica adecuada aquí? tia

¿Fue útil?

Solución

OMI, si la aplicación es relativamente simple y no te imaginas arrancar el acceso a los datos, sigue adelante y realiza las asignaciones en el repositorio. Pero si cree que la aplicación se complicará en el futuro o si desea cambiar el acceso a los datos, mantenga esta funcionalidad fuera de los repositorios.

He hecho aplicaciones con asignación en los repositorios y otras en la capa de servicio y otra más tuve una capa de conversión separada (no era una conversión uno a uno y los objetos eran complejos).

Una cosa que recordar acerca de las mejores prácticas, está ahí para ayudar, si hace las cosas más difíciles, entonces no las uses.

Otros consejos

Solía ??no gustarme. Pero ahora generalmente nunca mires atrás. Básicamente, lo importante es que si necesita cambiar a una fuente de datos externa que tenga una estructura diferente, puede configurar una nueva asignación junto con la implementación del código del repositorio y terminar con él.

Se trata de la asignación de datos. Consulte este enlace: http://www.martinfowler.com/eaaCatalog/repository.html

Consulte también esta pregunta relacionada: Confusión de IRepository sobre los objetos devueltos . He utilizado un asignador similar, pero lo he hecho funcionar en el nivel IQueryable, lo que ha permitido hacer algunas cosas bastante interesantes al trabajar con el objeto de dominio después de la asignación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top