entity-framework - update - entity framework ventajas y desventajas
Actualizar EF 4 EDMX a EF 6 (3)
Mi aplicación está usando una base de datos primero EDMX en EF 4. Me gustaría actualizar todo a EF 6. Después de obtener EF 6 con NuGet tuve que hacer muchos cambios en mis clases que están usando mi modelo EF, porque los espacios de nombres han sido cambiado en EF 6. Luego me di cuenta de que el código generado por mi EDMX también usa los espacios de nombres incorrectos, etc. Hasta ahora no estoy usando un T4 personalizado.
¿Cómo actualizaría mi EDMX existente a EF 6?
Gracias.
- Borras tus viejos archivos .tt
- Abre su archivo edmx en modo diseñador (para que pueda ver su modelo)
- Haga clic derecho en un espacio libre
- Seleccione Agregar elemento de generación de código
- En el cuadro de diálogo, seleccione "EF 6.x DbContext Code Generation Item" (algo como esto)
- Guarde su edmx y se generarán todas las clases para usted, con los nuevos espacios de nombres, etc.
Además de las respuestas dadas aquí por Rand Random y Dean Oliver, permítanme mencionar el siguiente enlace de MSDN , que describe los pasos generales para actualizar a EF6. No subestimes los pasos manuales requeridos ...
El mapa de ruta es (ver detalles en el enlace dado arriba):
Preparación: Instalar Entity Framework 6 Tools para Visual Studio 2012/13
Instalar el paquete EF6 NuGet
Asegúrese de que las referencias de ensamblado a System.Data.Entity.dll se hayan eliminado (Nota: la instalación del paquete EF6 NuGet debería eliminar automáticamente cualquier referencia a System.Data.Entity de su proyecto).
Cambie cualquier modelo de EF Designer (EDMX) para usar la generación de código EF 6.x.
Notas:- Si recibe el mensaje "El Diseñador de modelos de Entity Data no puede mostrar el archivo que solicitó" luego, haga clic en el vínculo modificar en el mensaje de texto que se muestra "La entidad Diseñador de modelos de datos ... Puede modificar ... ", que mostrará las tablas. Seleccione todo con Ctrl + A , luego presione Supr , luego haga clic derecho y seleccione "Actualizar modelo de la base de datos", y finalmente guárdelo usando Ctrl + S. Esto actualizará el modelo a la última versión utilizando la plantilla predeterminada T4 "EF 6.x DbContext Generator".
- Si ha utilizado
ObjectContext
en su proyecto, debería considerar descargar la plantilla "EF 6.x EntityObject Generator" . A continuación, haga clic con el botón derecho en el diseñador del modelo, elija "Agregar elemento de generación de código" y luego elija un nombre que aún no haya utilizado.*.tt
las clases correctas, luego deberá eliminar todos los archivos antiguos ("*.tt
") y los archivos relacionados de clase generada ("*.cs
").
- Si recibe el mensaje "El Diseñador de modelos de Entity Data no puede mostrar el archivo que solicitó" luego, haga clic en el vínculo modificar en el mensaje de texto que se muestra "La entidad Diseñador de modelos de datos ... Puede modificar ... ", que mostrará las tablas. Seleccione todo con Ctrl + A , luego presione Supr , luego haga clic derecho y seleccione "Actualizar modelo de la base de datos", y finalmente guárdelo usando Ctrl + S. Esto actualizará el modelo a la última versión utilizando la plantilla predeterminada T4 "EF 6.x DbContext Generator".
Actualizar espacios de nombres para cualquier tipo de núcleo EF que se utilice, es decir,
- cualquier tipo en
System.Data.*
se mueve aSystem.Data.Entity.Core.*
-
System.Data.EntityState
=>System.Data.Entity.EntityState
-
System.Data.Objects.DataClasses.EdmFunctionAttribute
=>System.Data.Entity.DbFunctionAttribute
.
Nota: Esta clase ha sido renombrada; una clase con el nombre antiguo todavía existe y funciona, pero ahora está marcada como obsoleta. -
System.Data.Objects.EntityFunctions
=>System.Data.Entity.DbFunctions
.
Nota: Esta clase ha sido renombrada; una clase con el nombre antiguo todavía existe y funciona, pero ahora está marcada como obsoleta. - Las clases espaciales (por ejemplo,
DbGeometry
,DbGeometry
) se han movido de
System.Data.Spatial
=>System.Data.Entity.Spatial
- cualquier tipo en
NÓTESE BIEN:
Puede encontrar más información sobre las plantillas EF disponibles aquí en MSDN.
Si recibe una advertencia de atributo obsoleto después de actualizar a EF6.x, consulte este artículo SO: ¿Cómo deshacerse de la advertencia de atributo obsoleto?
Además de los pasos sugeridos por Rand Random. Recuerde instalar Entity Framework 6 Tools para Visual Studio 2012 si está utilizando VS2012. descarga aquí
Esto asegurará que la plantilla EF 6.x DbContext Generator se muestre al hacer clic en el Paso 4: agregar un elemento de generación de código