Configurar Entity Framework Core en .NET

Resumen

Si estás construyendo una API en .NET y quieres conectar tu código con una base de datos sin escribir SQL a mano, Entity Framework Core es la pieza que necesitas. Aquí aprenderás qué es un ORM, por qué Entity Framework es el estándar en .NET y cómo dejar listo el contexto inicial para empezar a trabajar.

¿Qué es un ORM y por qué importa en .NET?

Un ORM (Object Relational Mapping) es una tecnología que conecta tu código con la base de datos usando clases en lugar de sentencias SQL directas [01:00]. La idea es simple: cada tabla de tu base de datos se representa como una clase en tu proyecto, y las operaciones como consultar, insertar o actualizar se hacen llamando funciones del propio framework.

Esto trae varias ventajas concretas:

  • Reduces la necesidad de aprender SQL avanzado.
  • Tu código queda más limpio y legible.
  • Reutilizas lógica entre múltiples queries y escenarios.

¿Qué significa ORM? Object Relational Mapping. Es un patrón que mapea clases de tu código a tablas de la base de datos para que manipules datos como objetos.

¿Por qué Entity Framework Core es el ORM principal de .NET?

Entity Framework es el ORM oficial de .NET, desarrollado por el mismo equipo de Microsoft, y es el más usado dentro del ecosistema [01:40]. Su popularidad no es casualidad: ofrece soporte amplio, integración nativa y una curva de aprendizaje amigable.

Entre sus capacidades destacan:

  • Soporte para múltiples motores como SQL Server, Postgres y bases de datos en memoria.
  • Generación de queries mediante LINQ, evitando escribir SQL directamente.
  • Migraciones para versionar cambios del modelo sin crear scripts manuales.
  • Mejora de productividad al reutilizar el contexto en distintas partes de la API.

LINQ es la clave aquí: en lugar de redactar consultas SQL, encadenas funciones para filtrar, seleccionar campos y proyectar resultados, y al final obtienes los datos como objetos de tu modelo.

¿Cómo instalar los paquetes NuGet de Entity Framework Core?

El primer paso práctico es agregar las librerías necesarias al proyecto desde Manage NuGet Packages [03:30]. Si lo prefieres, también puedes buscarlas en nuget.org o instalarlas con el CLI.

Los tres paquetes que necesitas son:

  1. Microsoft.EntityFrameworkCore: el núcleo del ORM.
  2. Microsoft.EntityFrameworkCore.Relational: aporta mecanismos adicionales para configurar la base de datos desde el código.
  3. Microsoft.EntityFrameworkCore.InMemory: permite trabajar con una base de datos en memoria, ideal para pruebas iniciales sin conectarte a un motor real.

¿Para qué sirve EF Core InMemory? Es un proveedor que crea una base de datos temporal en memoria. Perfecto para pruebas y desarrollo cuando aún no quieres configurar SQL Server o Postgres.

¿Cómo se crea el AppDbContext en Entity Framework?

Una vez instalados los paquetes, toca crear el contexto de Entity Framework, que es la puerta de entrada a la base de datos desde tu código [04:30].

Estructura básica del contexto

Crea una carpeta llamada Data y dentro una clase AppDbContext. Esta clase es común y corriente, pero hereda de DbContext, que viene del namespace Microsoft.EntityFrameworkCore.

csharp using Microsoft.EntityFrameworkCore;

public class AppDbContext : DbContext { public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { } }

El constructor recibe un DbContextOptions<AppDbContext> que se usará para inyectar la configuración (como el motor de base de datos) desde el contenedor de servicios.

Registro del contexto en Program.cs

El siguiente paso es registrar el contexto dentro de los servicios de la aplicación, debajo de la línea donde agregas los controladores [05:50]:

csharp builder.Services.AddDbContext<AppDbContext>(options => { options.UseInMemoryDatabase("CursoApisDb"); });

Aquí pasan dos cosas importantes. Primero, AddDbContext registra tu AppDbContext para que puedas inyectarlo en controladores y servicios. Segundo, UseInMemoryDatabase proviene del paquete InMemory que instalaste; si no lo agregaras, esa opción no aparecería siquiera en el intellisense.

El nombre CursoApisDb identifica la base en memoria. Puedes cambiarlo por el que prefieras, ya que solo vive mientras la aplicación esté en ejecución.

¿Qué hacer después de configurar el contexto?

Con el AppDbContext registrado, tu API ya tiene la base lista para definir entidades, hacer consultas con LINQ y, más adelante, cambiar el proveedor InMemory por uno real como SQL Server o Postgres sin tocar la lógica del negocio.

Un buen ejercicio para fijar lo aprendido:

  • Renombra la base de datos en memoria con un nombre personalizado.
  • Investiga cómo funciona DbContextOptions y qué otras configuraciones acepta.
  • Agrega comentarios descriptivos a la clase AppDbContext y al registro en Program.cs.

¿Qué nombre le pondrías tú a la base en memoria de tu primer proyecto? Cuéntalo en los comentarios y comparte tus dudas sobre Entity Framework.