.net - tutorial - mostrar datos de una tabla en mvc
ASP.NET y Entity Framework en Layered Architecture: utilizando Entity Framework solo para ORM (6)
- Si eres práctico: ¡Sí! Evitará el trabajo de mapeo doble y los posibles errores generados por el mapeo doble. (Por doble mapeo quiero decir DB -> ORM y ORM -> lógica de negocios).
- Utilice TransactionScope . Es la mejor forma de realizar transacciones sin preocuparse por las transacciones anidadas.
Tengo una aplicación ASP.NET que usa una arquitectura en capas, por ejemplo, capa de presentación, capa de lógica de negocios, capa de acceso a datos.
No quiero que la capa empresarial tenga que saber nada sobre cómo se implementa la capa de acceso a los datos y no estoy tratando de vincular la Entidad directamente a un control de datos usando EntityDataSource ni nada por el estilo. (Así un escenario de patrón de repositorio)
SOLO ESCOYO DE UTILIZAR EL MARCO DE LA ENTIDAD COMO HERRAMIENTA ORM PARA GENERAR CLASES. Yo sé cómo hacer esto. Lo que no tengo claro es
- ¿Es aconsejable propagar estas clases hacia arriba a través de la aplicación para que la capa de lógica de negocios trate con las clases parciales creadas directamente por el marco de la entidad? (por ejemplo, si tengo una tabla de clientes en sql, la entidad fw crearía una clase de cliente que podría usarse potencialmente en todas las capas de mi aplicación)
- Cómo administrar el soporte de transacciones si mi BLL está llamando a varias clases de entidades diferentes pero quiere tratarlo como una transacción
Ahora con el nuevo EF4 también puede usar las clases de POCO, eliminando así la carga extra de mapeo de las entidades entre las capas. En nuestra aplicación, usamos EF4 y utilizamos entidades comerciales en la aplicación, además de ver qué modelo de vista requería. Se dio un impulso significativo en el rendimiento.
Incluso si utiliza clases de POCO generadas, como sugieren otras operaciones, aún tendrá que mantener una cierta dependencia del marco de la entidad: las consultas que envíe a su DbContext / ObjectContext. Por lo tanto, debe considerar encapsular las consultas en los repositorios.
No con el marco de la entidad, pero intenté crear una muestra con dos procedimientos de inserción almacenados que se ejecutan por separado en la capa de acceso a datos (utilizando el bloque de aplicación de acceso a datos 3.1), incluido en el contexto TransactionScope en Servicio / BLL, no funcionó. Una inserción pasada, otra fallida y los datos fueron confiados.
¿Tuviste algún éxito haciendo esto tú mismo?
Otra forma de hacer esto es usar clases de mapeador, usar lo que EF puramente como acceso a datos y usar las clases generadas por EF solo dentro del DAL, luego asignar estos objetos DAL a los objetos de su BLL a través de los mapeadores. Funciona bien para nosotros.
Sospecho que esta puede ser la respuesta a su problema:
http://code.msdn.microsoft.com/EFPocoAdapter/Release/ProjectReleases.aspx?ReleaseId=1580
La herramienta genera clases que no tienen dependencia de marco de entidad que puede pasar a través de niveles.