Pregunta

Cómo implementar el patrón de repositorio con las centros de linqto

¿Fue útil?

Solución

Hago lo siguiente:

Una capa de servicio contiene mis objetos comerciales.Se pasa al repositorio mediante una inversión de control (Castle Windor es mi opción habitual).El repositorio está a cargo del mapeo entre los objetos comerciales y los objetos del marco de mi entidad.

Las ventajas:No tiene problemas con el estado del objeto o el contexto de los objetos EF porque simplemente los está cargando durante la manipulación de datos en el lado del repositorio.Esto facilita la situación al pasarlos a WCF/Web-Services.

Las desventajas:Está perdiendo parte de la funcionalidad de seguimiento de Entity Framework, debe cargar manualmente el objeto de datos (objetos ef), posiblemente si es necesario manualmente para realizar comprobaciones de simultaneidad optimistas (a través de una marca de tiempo en el objeto comercial, por ejemplo).

Pero en general prefiero esta solución, porque luego es posible cambiar el repositorio.Me permite tener diferentes repositorios (por ejemplo, mi objeto de usuario en realidad usa ASPNetAuthenticationRepository en lugar de EntityFrameworkRepository) pero para mi capa de servicio es transparente.

Con respecto a la interfaz, usaría los objetos comerciales de la capa de servicio como objetos de parámetros y no dejaría que esos objetos EF salgan de la capa del repositorio.Espero que ayude

Otros consejos

Casi me gusta esto excepto por lo de "Castle Windor".Eche un vistazo a openticket.codeplex.com

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