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
Course
amb les propietatsCourseId
,Title
iCredits
. - Afegeix la nova entitat al
DbContext
. - 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
- Recupera un
Course
existent 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ó