fbpx

Entity Framework 6 (EF 6) o Entity Framework Core (EF Core)

Actualmente existen una herramienta básica para la ayuda en el desarrollo de nuestras aplicaciones en .NET llamada Entity Framework de Microsoft.

1. Introducción

Entity Framework 6 (EF6) es un asignador relacional de objetos diseñado para .NET Framework, pero compatible con .NET Core. EF6 es un producto estable y compatible, pero ya no se desarrolla activamente.

Entity Framework Core (EF Core) es un asignador de base de datos de objeto moderno para .NET. Admite consultas LINQ, seguimiento de cambios, actualizaciones y migraciones de esquemas.

EF Core funciona con SQL Server o Azure SQL Database, SQLite, Azure Cosmos DB, MySQL, PostgreSQL y muchas otras bases de datos mediante un modelo de complemento de proveedor de bases de datos.

Para profundizar un poco más con las diferencias entre ambas versiones puedes revisar este articulo

Conforme pasa el tiempo siempre salen nuevas versiones de productos, mas rápidos y mas eficientes, sea quien sea el desarrollador de ese producto, pero la esencia básica de lo que hace el producto sigue siendo la misma, el caso de EF6 y EF Core no es la excepción, EF6 va a quedar en el olvido con el tiempo claro, en lo personal aun sigo usando EF6.

Te dejo una tabla con las diferencias entre EF6 y EF Core

2. Creación de un modelo

CaracterísticaEF6.4EF Core
Asignación de clase básica1,0
Constructores con parámetros2.1
Conversiones de valores de propiedad2.1
Tipos asignados sin claves2.1
Convenciones1,0
Convenciones personalizadas7.0
Anotaciones de datos1,0
API fluida1,0
Herencia: tabla por jerarquía (TPH)1,0
Herencia: tabla por tipo (TPT)5.0
Herencia: tabla por clase concreta (TPC)7.0
Propiedades de estado reemplazadas1,0
Claves alternativas1,0
Navegaciones de varios a varios5.0
Varios a varios sin entidad de combinación5.0
Generación de claves: base de datos1,0
Generación de claves: cliente1,0
Tipos complejos/de propiedad2.0
Datos espaciales2.2
Formato de modelo: código1,0
Crear un modelo desde base de datos: línea de comandos1,0
Actualizar modelo desde base de datosParcialEn el trabajo pendiente (n.º 831)
Filtros de consulta global2.0
División de tablas2.0
División de entidades7.0
Asignación de función escalar de base de datosPoor2.0
Asignación de funciones con valores de tabla de base de datosPoor5.0
Asignación de campos1.1
Tipos de referencia que aceptan valores NULL (C# 8.0)3.0
Visualización gráfica de modeloNo hay soporte técnico planeado (1)
Editor de modelo gráficoNo hay soporte técnico planeado (1)
Formato de modelo: EDMX (XML)No hay soporte técnico planeado (1)
Crear un modelo desde base de datos: asistente de VSNo hay soporte técnico planeado (1)

3. Consultar datos

CaracterísticaEF6.4EF Core
Consultas LINQ1,0
SQL generado legiblePoor1,0
Traslación de GroupBy2.1
Carga de datos relacionados: diligente1,0
Carga de datos relacionados: carga diligente de tipo derivados2.1
Carga de datos relacionados: diferida2.1
Carga de datos relacionados: explícita1.1
Consultas SQL sin formato: tipos de entidad1,0
Consultas SQL sin formato: tipos de entidad sin clave2.1
Consultas SQL sin procesar: componer con LINQ1,0
Consultas compiladas de manera explícitaPoor2.0
await foreach (C# 8.0)3.0
Lenguaje de consulta basado en texto (Entity SQL)No hay soporte técnico planeado (1)

4. Almacenamiento de datos

CaracterísticaEF6.4EF Core
Seguimiento de cambios: instantánea1,0
Seguimiento de cambios: notificación1,0
Seguimiento de cambios: servidores proxy5.0
Acceso al estado con seguimiento1,0
Simultaneidad optimista1,0
Transacciones1,0
Procesamiento de instrucciones por lotes1,0
Asignación de procedimientos almacenados7.0
Grafo desconectado: API de bajo nivelPoor1,0
Grafo desconectado: de un extremo a otro1.0 (parcial; n.º 5536)

5. Otras características

CaracterísticaEF6.4EF Core
Migraciones1,0
API de creación o eliminación de la base de datos1,0
Datos de inicialización2.1
Resistencia de la conexión1.1
Interceptores3.0
Eventos3.0 (parcial; n.º 626)
Registro simple (Database.Log)5.0
Agrupación de DbContext2.0

6. Proveedores de bases de datos (2)

CaracterísticaEF6.4EF Core
SQL Server1,0
MySQL1,0
PostgreSQL1,0
Oracle1,0
SQLite1,0
SQL Server Compact1.0 (3)
DB21,0
Firebird2.0
Jet (Microsoft Access)2.0 (3)
Azure Cosmos DB3.0
En memoria (para pruebas)1,0

7. Conclusiones

Como podemos ver las diferencias entre ambas versiones son significativas, pero eso no quiere decir que tires a la basura EF6 e inmediatamente migres tus aplicaciones a EF Core eso seria a mi punto de vista un error, primero se debe de analizar profundamente lo que se tiene con EF6 y lo que se ofrece con EF Core y pensar en una migración si y solo si es verdaderamente critica y necesaria por cuestiones de escalabilidad o de seguridad.

Indudablemente si estamos por realizar un desarrollo completamente nuevo sin pensarlo hay que usar EF Core.

Tu que piensas? coméntanoslo.

Te invito a ver otro de mis blogs

Halcón de cola roja como imagen del autor.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

* *
*

Scroll al inicio