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.
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:
Aplicar una Migració
Per aplicar les migracions pendents a la base de dades, utilitza:
Exercicis Pràctics
Exercici 1: Crear una Entitat i Afegir-la a la Base de Dades
- Crea una nova entitat anomenada
Courseamb les propietatsCourseId,TitleiCredits. - Afegeix la nova entitat al
DbContext. - Crea una instància de
Coursei 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
- Recupera un
Courseexistent de la base de dades. - Modifica la propietat
Title. - 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ó.
Curs de Programació en C#
Mòdul 1: Introducció al C#
- Introducció al C#
- Configuració de l'Entorn de Desenvolupament
- Programa Hello World
- Sintaxi i Estructura Bàsica
- Variables i Tipus de Dades
Mòdul 2: Estructures de Control
Mòdul 3: Programació Orientada a Objectes
Mòdul 4: Conceptes Avançats de C#
- Interfícies
- Delegats i Esdeveniments
- Genèrics
- Col·leccions
- LINQ (Consulta Integrada al Llenguatge)
- Programació Asíncrona
Mòdul 5: Treballant amb Dades
Mòdul 6: Temes Avançats
- Reflexió
- Atributs
- Programació Dinàmica
- Gestió de Memòria i Recollida d'Escombraries
- Multifil i Programació Paral·lela
Mòdul 7: Construcció d'Aplicacions
Mòdul 8: Millors Pràctiques i Patrons de Disseny
- Estàndards de Codificació i Millors Pràctiques
- Patrons de Disseny
- Proves Unitàries
- Revisió de Codi i Refactorització
