Aprende a configurar Entity Framework Core en .NET paso a paso para escribir queries con LINQ sin SQL, gestionar migraciones y mantener un código más limpio y productivo. Este recurso explica qué es un ORM, qué paquetes instalar con NuGet y cómo crear y registrar un DbContext con base de datos en memoria.
¿Qué es un ORM y por qué usar Entity Framework?
Un ORM (Object Relational Mapping) permite mapear clases a tablas de base de datos. Con Entity Framework, desarrollado por el equipo de .NET, puedes trabajar con múltiples motores como SQL Server o PostgreSQL, e incluso con una base en memoria para pruebas. Así, el código queda más simple y se reducen dependencias directas de SQL.
Mapeo de clases a tablas: se conectan clases de .NET con componentes de la base de datos.
LINQ en lugar de SQL: se escriben queries con funciones de LINQ en el código.
Migraciones: controlan cambios de esquema desde el código.
Productividad: el contexto se reutiliza en múltiples queries y escenarios.
¿Cómo simplifica LINQ los queries sin SQL?
Filtrar datos con expresiones claras en código.
Seleccionar campos específicos sin escribir SQL.
Componer queries legibles y reutilizables.
¿Qué paquetes de Entity Framework Core instalar con NuGet?
La instalación se realiza desde Manage NuGet Packages o buscando en nuget.org; también puedes usar el CLI. Para trabajar con Entity Framework Core e iniciar pruebas, instala los paquetes base, relacionales y de base en memoria.
¿Qué paquetes específicos instalar?
Microsoft.EntityFrameworkCore: núcleo de Entity Framework Core.
Microsoft.EntityFrameworkCore.Relational: configura bases relacionales desde el código.
Microsoft.EntityFrameworkCore.InMemory: crea una base en memoria para pruebas.
Nota: sin el paquete InMemory, la opción para crear la base en memoria no aparece.
¿Cómo crear el DbContext y registrarlo en Program?
Crea una carpeta Data y define una clase AppDbContext que herede de DbContext. Luego, regístrala en los servicios de la aplicación con AddDbContext y configura UseInMemoryDatabase con un nombre, por ejemplo: "Curso APIs DB".