Configurar Entity Framework Core en un proyecto .NET te permite conectar tu código con una base de datos sin escribir SQL manualmente. Aquí aprendes a instalar las librerías necesarias, crear el contexto y registrar el servicio para empezar a trabajar con un ORM moderno y productivo.
¿Qué es un ORM y cómo se relaciona con Entity Framework?
Un ORM, o Object Relational Mapping, es una tecnología que mapea las tablas de tu base de datos a clases dentro de tu código. Esto aplica a múltiples lenguajes y frameworks, no solo a .NET, y su objetivo es simplificar la comunicación entre tu aplicación y la base de datos [0:24].
La idea central es que puedes omitir SQL en muchos casos y generar tus queries usando funciones que el propio ORM te ofrece. Tu código queda más limpio, más legible y, sobre todo, más mantenible.
¿Qué significa ORM? Object Relational Mapping. Es un patrón que mapea clases de tu código con tablas de la base de datos para que no tengas que escribir SQL directamente.
¿Por qué usar Entity Framework Core como ORM principal de .NET?
Entity Framework es el ORM oficial de .NET, desarrollado por el mismo equipo de Microsoft, y es el más utilizado en el ecosistema [1:21]. Te permite relacionar clases con tablas de forma directa y soporta varios motores de base de datos.
Entre los motores compatibles encontrarás:
- SQL Server.
- PostgreSQL.
- Bases de datos en memoria, ideales para pruebas.
Una pieza clave dentro de Entity Framework es LINQ, que reemplaza la escritura de SQL plano. Con LINQ filtras, seleccionas campos específicos y construyes consultas directamente desde C# [1:51].
Otra ventaja importante son las migraciones, un mecanismo que rastrea los cambios en tu modelo y los aplica a la base de datos sin que tengas que crear scripts manuales [2:09].
¿Qué hace LINQ en Entity Framework? Reemplaza el SQL escrito a mano. Usas funciones de C# para filtrar, ordenar y seleccionar datos, y Entity Framework traduce eso a SQL real.
¿Cómo instalar las librerías de Entity Framework Core en tu proyecto?
Dentro del proyecto abre el Manage NuGet Packages y busca Entity Framework Core [2:50]. También puedes buscar los paquetes en NuGet.org y usar el CLI si prefieres la línea de comandos.
Estos son los tres paquetes que vas a instalar:
- Microsoft.EntityFrameworkCore: el núcleo del ORM.
- Microsoft.EntityFrameworkCore.Relational: aporta mecanismos adicionales para configurar la base de datos desde el código.
- Microsoft.EntityFrameworkCore.InMemory: te permite trabajar con una base de datos en memoria, perfecta para pruebas iniciales [3:26].
Con estos tres paquetes ya tienes lo necesario para crear el contexto y empezar a configurar tu aplicación.
¿Cómo crear el AppDbContext en Entity Framework?
Después de instalar los paquetes, crea una carpeta llamada Data dentro del proyecto. Ahí agrega una clase nueva con el nombre AppDbContext [3:42].
La magia ocurre cuando esa clase hereda de DbContext, la clase base de Entity Framework. Para que funcione necesitas el using Microsoft.EntityFrameworkCore.
csharp
using Microsoft.EntityFrameworkCore;
public class AppDbContext : DbContext
{
public AppDbContext(DbContextOptions<AppDbContext> options)
: base(options)
{
}
}
El constructor recibe un DbContextOptions<AppDbContext> que más adelante te servirá para inyectar la configuración del motor de base de datos desde el Program.cs [4:14].
¿Cómo registrar el DbContext en los servicios de la aplicación?
El último paso es registrar el contexto dentro del contenedor de dependencias de la aplicación. Abre Program.cs y, debajo del registro de los Controllers, agrega el servicio con AddDbContext [4:43].
csharp
builder.Services.AddDbContext<AppDbContext>(options =>
{
options.UseInMemoryDatabase("CursoAPIsDB");
});
Aquí pasan tres cosas importantes:
- Indicas el tipo del contexto:
AppDbContext.
- Configuras las opciones con una lambda.
- Llamas a
UseInMemoryDatabase, un método que solo está disponible porque instalaste el paquete InMemory [5:13].
El nombre CursoAPIsDB identifica esa base de datos en memoria. Si no instalaras la librería InMemory, ese método ni siquiera aparecería como opción, lo cual te muestra cómo cada paquete amplía las capacidades del ORM.
¿Para qué sirve UseInMemoryDatabase? Crea una base de datos temporal en memoria RAM. Es ideal para pruebas y prototipos rápidos sin necesidad de instalar SQL Server u otro motor.
Con esa configuración ya tienes Entity Framework Core funcionando en tu API. Te reto a cambiar el nombre de la base de datos por uno propio, investigar más sobre DbContextOptions y agregar comentarios descriptivos a tu clase para reforzar tu aprendizaje. ¿Qué nombre le pondrías a tu base de datos en memoria? Cuéntalo en los comentarios.