Entity Framework (EF) es un marco de trabajo de mapeo objeto-relacional (ORM) para .NET que permite a los desarrolladores trabajar con una base de datos utilizando objetos .NET. Simplifica el acceso a datos y permite a los desarrolladores centrarse en la lógica de la aplicación en lugar de en el acceso a datos.

Contenido

  1. ¿Qué es Entity Framework?
  2. Instalación y Configuración
  3. Modelos de Datos
  4. Operaciones CRUD
  5. Consultas Avanzadas
  6. Migraciones
  7. Ejercicios Prácticos

  1. ¿Qué es Entity Framework?

Entity Framework es una herramienta ORM que permite a los desarrolladores interactuar con bases de datos relacionales utilizando objetos .NET. Proporciona una abstracción de alto nivel sobre el acceso a datos, lo que facilita la manipulación de datos sin necesidad de escribir SQL.

Ventajas de Entity Framework

  • Productividad: Reduce la cantidad de código necesario para acceder a los datos.
  • Mantenimiento: Facilita el mantenimiento del código al trabajar con objetos en lugar de consultas SQL.
  • Portabilidad: Permite cambiar de base de datos sin modificar el código de acceso a datos.

  1. Instalación y Configuración

Para utilizar Entity Framework en tu proyecto, primero necesitas instalar el paquete NuGet correspondiente.

Instalación

  1. Abre tu proyecto en Visual Studio.
  2. Abre la consola del Administrador de Paquetes NuGet desde Herramientas > Administrador de Paquetes NuGet > Consola del Administrador de Paquetes.
  3. Ejecuta el siguiente comando para instalar Entity Framework Core:
Install-Package Microsoft.EntityFrameworkCore
Install-Package Microsoft.EntityFrameworkCore.SqlServer
Install-Package Microsoft.EntityFrameworkCore.Tools

Configuración

Configura el contexto de datos y las entidades en tu proyecto.

Ejemplo de Contexto de Datos

using Microsoft.EntityFrameworkCore;

public class ApplicationDbContext : DbContext
{
    public DbSet<Student> Students { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlServer("YourConnectionStringHere");
    }
}

Ejemplo de Entidad

public class Student
{
    public int Id { get; set; }
    public string Name { get; set; }
    public DateTime EnrollmentDate { get; set; }
}

  1. Modelos de Datos

Entity Framework permite tres enfoques principales para definir el modelo de datos:

  • Code First: Define el modelo utilizando clases C# y genera la base de datos a partir de estas clases.
  • Database First: Genera el modelo a partir de una base de datos existente.
  • Model First: Diseña el modelo utilizando un diseñador visual y genera la base de datos y las clases a partir de este modelo.

Ejemplo de Code First

public class Course
{
    public int CourseId { get; set; }
    public string Title { get; set; }
    public int Credits { get; set; }
}

  1. Operaciones CRUD

Crear

using (var context = new ApplicationDbContext())
{
    var student = new Student { Name = "John Doe", EnrollmentDate = DateTime.Now };
    context.Students.Add(student);
    context.SaveChanges();
}

Leer

using (var context = new ApplicationDbContext())
{
    var students = context.Students.ToList();
}

Actualizar

using (var context = new ApplicationDbContext())
{
    var student = context.Students.First();
    student.Name = "Jane Doe";
    context.SaveChanges();
}

Eliminar

using (var context = new ApplicationDbContext())
{
    var student = context.Students.First();
    context.Students.Remove(student);
    context.SaveChanges();
}

  1. Consultas Avanzadas

Entity Framework permite realizar consultas avanzadas utilizando LINQ.

Ejemplo de Consulta Avanzada

using (var context = new ApplicationDbContext())
{
    var students = context.Students
                          .Where(s => s.EnrollmentDate.Year == 2023)
                          .OrderBy(s => s.Name)
                          .ToList();
}

  1. Migraciones

Las migraciones permiten actualizar la base de datos para que coincida con el modelo de datos.

Crear una Migración

  1. Abre la consola del Administrador de Paquetes NuGet.
  2. Ejecuta el siguiente comando:
Add-Migration InitialCreate

Aplicar la Migración

Update-Database

  1. Ejercicios Prácticos

Ejercicio 1: Crear una Entidad y Realizar Operaciones CRUD

  1. Crea una entidad Course con las propiedades CourseId, Title y Credits.
  2. Configura el contexto de datos para incluir la entidad Course.
  3. Realiza operaciones CRUD (Crear, Leer, Actualizar, Eliminar) con la entidad Course.

Solución

// Entidad Course
public class Course
{
    public int CourseId { get; set; }
    public string Title { get; set; }
    public int Credits { get; set; }
}

// Contexto de Datos
public class ApplicationDbContext : DbContext
{
    public DbSet<Course> Courses { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlServer("YourConnectionStringHere");
    }
}

// Operaciones CRUD
using (var context = new ApplicationDbContext())
{
    // Crear
    var course = new Course { Title = "Mathematics", Credits = 3 };
    context.Courses.Add(course);
    context.SaveChanges();

    // Leer
    var courses = context.Courses.ToList();

    // Actualizar
    var firstCourse = context.Courses.First();
    firstCourse.Title = "Advanced Mathematics";
    context.SaveChanges();

    // Eliminar
    var courseToDelete = context.Courses.First();
    context.Courses.Remove(courseToDelete);
    context.SaveChanges();
}

Conclusión

En esta sección, hemos aprendido los conceptos básicos de Entity Framework, cómo instalarlo y configurarlo, y cómo realizar operaciones CRUD. También hemos explorado consultas avanzadas y migraciones. Con estos conocimientos, estás preparado para trabajar con bases de datos en tus aplicaciones .NET de manera eficiente y efectiva. En el siguiente módulo, profundizaremos en la programación asíncrona en C#.

© Copyright 2024. Todos los derechos reservados