Resumen

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".

¿Cómo definir la clase AppDbContext?

using Microsoft.EntityFrameworkCore;

public class AppDbContext : DbContext
{
    public AppDbContext(DbContextOptions<AppDbContext> options) : base(options)
    {
        // Configuración personalizada opcional.
    }
}
  • DbContext: clase base que representa el contexto de datos.
  • DbContextOptions: configura el comportamiento del contexto.

¿Cómo registrar el contexto con AddDbContext e InMemory?

using Microsoft.EntityFrameworkCore;

// En Program.cs
builder.Services.AddDbContext<AppDbContext>(options =>
{
    options.UseInMemoryDatabase("Curso APIs DB");
});
  • AddDbContext: registra el contexto en los servicios.
  • UseInMemoryDatabase: habilita la base en memoria para pruebas.

¿Qué habilidades y conceptos pones en práctica?

  • Configurar un ORM en .NET con NuGet.
  • Crear y heredar de DbContext.
  • Usar DbContextOptions para ajustar el contexto.
  • Registrar servicios con AddDbContext.
  • Escribir queries con LINQ sin SQL.
  • Entender el rol de las migraciones para cambios de esquema.

¿Con qué nombre vas a crear tu base en memoria y qué entidades planeas mapear primero? Comparte tu avance y dudas en los comentarios.