entity-framework - initial - microsoft entity framework 6
ADO.NET DbContext Generator vs. ADO.NET Poco Entity Generator(ObjectContext) (1)
Estoy a punto de comenzar a implementar la infraestructura de acceso a datos de un proyecto que fue diseñado con un enfoque de DDD ( es mi primer intento de DDD, así que sea amable ;-) ).
Usaré Entity Framework. Hasta ahora, estaba investigando el método enseñado por Julie Lerman en su gran libro, Programming Entity Framework , donde se usa ADO.NET POCO Entity Generator , con algunos cambios en las plantillas T4 y algunos códigos más personalizados.
Hoy comencé a leer artículos sobre EF4.1 y ADO.NET DbContext Generator , utilizando el enfoque de Database First , y estoy tratando de decidir con cuál debería ir.
El enfoque de DbContext y EF4.1 en DDD parece ser una forma agradable y más limpia que las Entidades POCO, pero me temo que podría ocasionar algunos problemas en el futuro cercano, ya que EF4.1 todavía está en RC.
Desde el blog del equipo ADO.NET , sé que EF4.1 no incluye:
- Soporte de Enum
- Soporte de tipo de datos espaciales
- Soporte de procedimiento almacenado en primer código
- Soporte de migración en Code First
- Convenciones personalizables en Code First
Según tengo entendido, dado que usaré Database First, hay un número menor de funciones que no se incluyeron.
En conclusión, mi pregunta es:
¿Puedo reemplazar el generador de entidades POCO con EF4.1 DbContext Generator?
Desde el punto de vista de la creación limpia de entidades POCO, no hay diferencia entre los dos generadores. Ambos generadores producen las mismas entidades, sin embargo, ADO.NET POCO Entity Generator se basa en la API de ObjectContext
, mientras que ADO.NET DbContext
Generator se basa en la API de DbContext
.
La API de DbContext tiene algunas características nuevas muy agradables (local, consulta en la propiedad de navegación, etc.) y la API se simplifica de alguna manera, pero al mismo tiempo parece que faltan algunas características utilizadas en la API ObjectContext en la API DbContext (o al menos tiene no se ha explorado lo suficiente todavía).
EF 4.1 RC es lanzamiento de puesta en marcha. Significa que puede compilar una aplicación real porque la API no cambiará en RTW (solo se corregirán los errores). También RTW debería estar en el próximo mes, así que creo que no estará listo con su aplicación antes de que se envíe la versión final.
ObjectContext
API o DbContext
API? ObjectContext
API está mucho mejor cubierto por documentación y publicaciones de blog. Puedes encontrar muchos ejemplos al respecto. También sus limitaciones ya son bien conocidas. DbContext
API es una nueva versión. Una publicación muy prometedora, principalmente debido al enfoque de primer código. Todavía hay un número muy limitado de publicaciones en blogs, ningún libro y la API no está suficientemente probada. Entonces, ¿depende si estás listo para luchar con la nueva API? De lo contrario, la API ObjectContext
sigue siendo una buena opción porque no necesita el enfoque de primer código.