Entity Framework Core: ORM para Bases de Datos en .NET

 


🔍 ¿Qué es Entity Framework Core?

Entity Framework Core (EF Core) es un ORM (Object-Relational Mapper) moderno y ligero para .NET que permite interactuar con bases de datos mediante clases y objetos, evitando escribir SQL manualmente en la mayoría de los casos.

Con EF Core puedes:

  • Crear, leer, actualizar y eliminar datos fácilmente (CRUD)

  • Generar esquemas de base de datos desde código (Code First)

  • Mapear bases de datos existentes a clases (Database First)

  • Trabajar con múltiples motores: SQL Server, PostgreSQL, SQLite, MySQL, etc.


⚙️ ¿Por qué usar EF Core?

✅ Evitas escribir SQL repetitivo
✅ Tienes control sobre la estructura de datos desde el código
✅ Soporte para LINQ, migraciones, relaciones y validaciones
✅ Integración directa con ASP.NET Core y .NET MAUI


🚀 Instalación rápida

dotnet add package Microsoft.EntityFrameworkCore dotnet add package Microsoft.EntityFrameworkCore.SqlServer dotnet add package Microsoft.EntityFrameworkCore.Tools

También puedes instalar paquetes específicos para otros proveedores como Pomelo.EntityFrameworkCore.MySql, Npgsql.EntityFrameworkCore.PostgreSQL, etc.


🧱 Ejemplo básico: Modelo, Contexto y CRUD

1️⃣ Crear un modelo

public class Producto { public int Id { get; set; } public string Nombre { get; set; } public decimal Precio { get; set; } }

2️⃣ Crear el contexto de base de datos

using Microsoft.EntityFrameworkCore; public class AppDbContext : DbContext { public DbSet<Producto> Productos { get; set; } public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { } }

3️⃣ Configurar EF Core en Program.cs

builder.Services.AddDbContext<AppDbContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));

Y en appsettings.json:

"ConnectionStrings": { "DefaultConnection": "Server=localhost;Database=MiAppDb;Trusted_Connection=True;" }

✨ Migraciones y actualización de la base

dotnet ef migrations add Inicial dotnet ef database update

EF Core creará la base de datos y las tablas automáticamente.


🔁 Consultas con LINQ

var productos = await _context.Productos.ToListAsync();

Con filtros:

var baratos = await _context.Productos .Where(p => p.Precio < 100) .ToListAsync();

🧩 Relaciones entre tablas

EF Core permite definir relaciones uno a muchos, uno a uno y muchos a muchos con gran facilidad mediante navegación de propiedades y convenciones o configuraciones explícitas (Fluent API).


💡 Buenas prácticas

  • Usa migraciones para manejar cambios en el esquema

  • Evita el uso de context.SaveChanges() en bucles

  • Aplica AsNoTracking() para lecturas donde no necesitas seguimiento

  • Usa patrones como Repository o Unit of Work para separar la lógica de acceso a datos


📘 Conclusión

Entity Framework Core es una herramienta poderosa que simplifica el trabajo con bases de datos, permitiéndote enfocarte en la lógica del negocio. Si estás desarrollando con .NET, dominar EF Core es esencial.

📌 Siguiente artículo:
👉 CRUD en ASP.NET Core con Entity Framework

Comentarios

Entradas populares de este blog

📂 File Organizer: Organiza tus archivos de manera eficiente 🚀

Control de Flujo en C#: If, Switch y Bucles – Aprende a Tomar Decisiones en tu Código

Programación Orientada a Objetos en C#: Clases y Objetos – Fundamentos Esenciales