entity-framework - mvc - entity framework tutorial español
¿Por qué usar DbContext y no ObjectContext? (1)
DbContext es una API más nueva que debería mejorar la experiencia de los desarrolladores al usar las tareas más comunes. Simplemente, la API está mejor diseñada, pero aún debe obtener ObjectContext
de DbContext
y usar la API más antigua si desea usar algunas funciones más complejas. Si planea actualizar EF a 5.x o 6.x en el futuro, probablemente será más fácil con DbContext porque eso es lo que recomienda el equipo de ADO.NET.
En términos de generadores, el generador EF 4.x POCO crea clases más complejas que internamente utilizan la corrección de relaciones. Esta característica demostró ser bastante ineficiente cuando se usa junto con una carga lenta, por lo que el generador EF DbContext más nuevo no lo usa.
Nota al margen: la transición de código de una API a otra es totalmente compatible:
- Puede usar el constructor
DbContext
aceptaObjectContext
para pasar de la API de ObjectContext a la API de DbContext - Puede usar el adaptador
IObjectContext
para pasar de la API DbContext a la API ObjectContext
Estoy utilizando EF 4.1 y utilizando DB primer enfoque. He creado mi archivo .edmx también. Ahora deseo crear mis clases de POCO.
Para esto, instalé EF 4.x DbContext Generator y EF 4.x POCO Entity Generator de NuGet.
Soy plenamente consciente de que se recomienda utilizar DbContext para EF 4.1+, ya que se deriva de ObjectContext. Sin embargo, todavía generé mis clases de POCO al 1er usando EF 4.x POCO Entity Generator y luego también por EF 4.x DbContext Generator.
EDITAR: Encontró este generador ADO.NET DbContext vs. ADO.NET Poco Entity Generator (ObjectContext)
En cualquiera de los casos, genera archivos .Context.tt & Model.tt. Entonces, ¿cuál es la diferencia exacta en los archivos generados por cualquiera de las herramientas? ¿Por qué se recomienda utilizar DbContext para EF 4.1+?
También me gustaría conocer las limitaciones de ObjectContext.