Saltar al contenido
Framework Ecosystems LabsUn contrato, muchos ecosistemas, la misma prueba.

🗃️ Entity Framework Core — 2016#

⬅️ Atlas · 🟦 Ecosistema .NET · 🗂️ Índice

Entity Framework Core es el mapeador de datos de .NET, con consultas integradas en el propio lenguaje. Su contraste con Dapper es la versión más limpia del catálogo del compromiso que enseña el módulo 06.

Aparición 2016 (reescritura de Entity Framework, 2008)
Clasificación orm — mapeador de datos
Ecosistema .NET (C#)
Licencia MIT
Estado 🟢 Activo
Documentación https://learn.microsoft.com/ef/core/

💡 Consultas en el lenguaje#

// Esto NO se ejecuta aquí: construye un árbol de expresión...
var pendientes = contexto.Tareas
    .Where(t => !t.Completada)
    .OrderBy(t => t.CreadaEn)
    .Take(20);

// ...y se traduce a SQL cuando se enumera.
var lista = await pendientes.ToListAsync();

La ventaja es real: el compilador comprueba la consulta. Un campo mal escrito no compila, en lugar de fallar en producción.

Y trae una trampa característica que conviene conocer: si una parte de la expresión no se puede traducir a SQL, el comportamiento depende de la versión —error, o evaluación en memoria tras traer más filas de las necesarias—. Ese segundo caso es un problema de rendimiento silencioso, primo hermano de la consulta N+1 que describe la ficha de Hibernate.

El diagnóstico es el mismo del módulo 06: contar consultas y mirar el SQL generado, no confiar en que la abstracción hizo lo esperado [fowler-poeaa].

🗂️ Migraciones incluidas#

Genera migraciones a partir de los cambios en el modelo, con versión y capacidad de revertir — la idea que Rails popularizó, aquí bien integrada con las herramientas del ecosistema.

Sigue aplicando la advertencia del módulo 06: una migración generada hay que leerla antes de aplicarla. Lo generado no siempre es reversible ni seguro con datos existentes [ambler-sadalage-refactoring-databases].

⚖️ Frente a Dapper#

Entity Framework Core Dapper
Escribes Consultas en C# SQL
Genera la consulta No: solo mapea el resultado
Migraciones Incluidas Aparte
Riesgo SQL generado que no esperabas Texto SQL que hay que mantener
Encaja en Dominios con muchas entidades relacionadas Lecturas complejas, control fino

Ambos son de la órbita de Microsoft y ambos están mantenidos: la elección no es de calidad, sino de qué quieres controlar.

🎓 Las dos lecciones#

1. Consultas comprobadas por el compilador eliminan una clase de errores y crean otra: lo que no se puede traducir.

2. Toda migración generada hay que revisarla. La herramienta no conoce tus datos.

🔗 Enlaces#

Fuentes#