Introducció a Entity Framework

Entity Framework (EF) és un ORM (Object-Relational Mapper) per a .NET que permet als desenvolupadors treballar amb una base de dades utilitzant objectes .NET. Això elimina la necessitat de la major part del codi d'accés a dades que els desenvolupadors normalment haurien d'escriure.

Conceptes Clau

  • ORM (Object-Relational Mapper): Una tècnica de programació que permet convertir dades entre sistemes de tipus incompatibles utilitzant llenguatges de programació orientats a objectes.
  • DbContext: La classe principal que actua com a pont entre la base de dades i l'aplicació.
  • Entity: Una classe que representa una taula a la base de dades.
  • DbSet: Una col·lecció d'entitats que es mapegen a una taula de la base de dades.

Configuració de Entity Framework

Instal·lació

Per començar a utilitzar Entity Framework, primer cal instal·lar el paquet NuGet corresponent. Pots fer-ho utilitzant la consola de gestió de paquets o l'administrador de paquets NuGet a Visual Studio.

Install-Package EntityFramework

Configuració del DbContext

El DbContext és la classe principal que gestiona les entitats i la connexió a la base de dades. Aquí tens un exemple de com configurar un DbContext:

using System.Data.Entity;

public class ApplicationDbContext : DbContext
{
    public ApplicationDbContext() : base("name=DefaultConnection")
    {
    }

    public DbSet<Student> Students { get; set; }
    public DbSet<Course> Courses { get; set; }
}

Definició d'Entitats

Les entitats són classes que es mapegen a taules de la base de dades. Aquí tens un exemple de com definir una entitat:

public class Student
{
    public int StudentId { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public DateTime EnrollmentDate { get; set; }
}

Operacions CRUD amb Entity Framework

Crear

Per afegir una nova entitat a la base de dades, primer cal crear una instància de l'entitat i després afegir-la al DbSet corresponent.

using (var context = new ApplicationDbContext())
{
    var student = new Student
    {
        FirstName = "John",
        LastName = "Doe",
        EnrollmentDate = DateTime.Now
    };

    context.Students.Add(student);
    context.SaveChanges();
}

Llegir

Per llegir dades de la base de dades, pots utilitzar el DbSet per fer consultes.

using (var context = new ApplicationDbContext())
{
    var students = context.Students.ToList();
    foreach (var student in students)
    {
        Console.WriteLine($"{student.FirstName} {student.LastName}");
    }
}

Actualitzar

Per actualitzar una entitat existent, primer cal recuperar-la, modificar les seves propietats i després guardar els canvis.

using (var context = new ApplicationDbContext())
{
    var student = context.Students.FirstOrDefault(s => s.StudentId == 1);
    if (student != null)
    {
        student.LastName = "Smith";
        context.SaveChanges();
    }
}

Eliminar

Per eliminar una entitat, primer cal recuperar-la i després eliminar-la del DbSet.

using (var context = new ApplicationDbContext())
{
    var student = context.Students.FirstOrDefault(s => s.StudentId == 1);
    if (student != null)
    {
        context.Students.Remove(student);
        context.SaveChanges();
    }
}

Migracions

Les migracions permeten gestionar els canvis en el model de dades al llarg del temps. Això és especialment útil quan es treballa en un projecte en equip o quan es despleguen canvis a producció.

Crear una Migració

Per crear una nova migració, utilitza la consola de gestió de paquets:

Add-Migration InitialCreate

Aplicar una Migració

Per aplicar les migracions pendents a la base de dades, utilitza:

Update-Database

Exercicis Pràctics

Exercici 1: Crear una Entitat i Afegir-la a la Base de Dades

  1. Crea una nova entitat anomenada Course amb les propietats CourseId, Title i Credits.
  2. Afegeix la nova entitat al DbContext.
  3. Crea una instància de Course i afegeix-la a la base de dades.

Solució

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

public class ApplicationDbContext : DbContext
{
    public ApplicationDbContext() : base("name=DefaultConnection")
    {
    }

    public DbSet<Student> Students { get; set; }
    public DbSet<Course> Courses { get; set; }
}

// Afegir un nou curs
using (var context = new ApplicationDbContext())
{
    var course = new Course
    {
        Title = "Introduction to C#",
        Credits = 3
    };

    context.Courses.Add(course);
    context.SaveChanges();
}

Exercici 2: Actualitzar una Entitat

  1. Recupera un Course existent de la base de dades.
  2. Modifica la propietat Title.
  3. Guarda els canvis a la base de dades.

Solució

using (var context = new ApplicationDbContext())
{
    var course = context.Courses.FirstOrDefault(c => c.CourseId == 1);
    if (course != null)
    {
        course.Title = "Advanced C#";
        context.SaveChanges();
    }
}

Conclusió

Entity Framework simplifica enormement el treball amb bases de dades en aplicacions .NET. Amb els conceptes i exemples proporcionats, hauríeu de ser capaços de començar a utilitzar EF per gestionar les vostres dades de manera eficient. En el proper mòdul, explorarem altres conceptes avançats de C# que us ajudaran a millorar encara més les vostres habilitats de programació.

© Copyright 2024. Tots els drets reservats