NOU 🚀 HTML & CSS de la ZERO modul 2 este aproape de lansare. Înscrie-te acum la modulul 1 și primești modulul 2 GRATUIT!

Cum să integrezi Entity Framework în ASP .NET Core

Postat 7 Septembrie, 2025
Cum să integrezi Entity Framework în ASP .NET Core

Introducere

C# e unul din limbajele de programare cu cele mai bune ecosisteme de dezvoltare existente. Deși mai sunt și alți competitori pe piață, cum ar fi Java, Python, JavaScript etc., niciunul nu oferă caracteristici peste combo-ul oferit de C#.

De asta e și unul din limbajele de programare cel mai des folosite în sisteme enterprise, aplicații mari și foarte mari din corporații și companii big tech, care au nevoie de stabilitate, scalabilitate și performanță maximă.

C# nu e un limbaj care apare prea des în lumina reflectoarelor, precum sunt JavaScript sau Python, pentru că oamenii au rămas cu anumite preconcepții din trecutul lui, dar în prezent reprezintă una din cele mai bune tehnologii cu care poți dezvolta soluții de back-end sau chiar full-stack, extrem de complexe și într-un ritm foarte alert.

Vreau să-ți arăt cât de simplu e să integrezi într-o aplicație ASP .NET Core comunicarea cu o bază de date relațională, precum SQL Server, folosind Entity Framework.

Integrarea asta e atât de bine făcută de Microsoft, încât vei putea “vorbi” cu baza de date ca și cum tabelele tale ar fi simple colecții în memorie.

Ce este Entity Framework

Entity Framework este un ORM, sau Object Relational Mapping (Mapper), adică o categorie de unelte din software development, care ne permit să comunicăm cu baze de date într-un mod cât mai facil și rapid în același timp.

Indiferent că folosești o bază de date relațională (precum SQL Server), sau una nerelațională (precum MongoDB), vei putea folosi Entity Framework fără nicio problemă.

Entity Framework se va ocupa de toate acțiunile necesare pentru a citi, scrie, actualiza sau șterge înregistrări din baza de date cu minimul de linii de cod necesare.

Hai să vedem cum putem să facem asta într-o aplicație ASP .NET Core.

Versiunea de Entity Framework pe care o s-o folosim va fi EF Core, adică cea dedicată pentru versiunile recente de .NET, nu varianta clasică pentru .NET Framework.

Implementare în ASP .NET Core

Înainte să integrezi Entity Framework, ai nevoie desigur de o aplicație ASP .NET Core pe care ai creat-o anterior.

Dacă nu știi cum să faci asta, urmează întâi pașii de aici.

Instalare EF Core CLI

Primul pas pe care trebuie să-l facem înainte de toate, e să instalăm interfața command line a Entity Framework, pentru că va trebui să executăm și câteva comenzi de terminal.

Interfața command line nu e altceva decât un set de comenzi de terminal specifice unei tehnologii anume, în cazul ăsta Entity Framework.

Pentru a instala EF Core cli, trebuie să deschizi o fereastră de terminal și să execuți următoarea comandă:

dotnet tool install --global dotnet-ef

Ne întoarcem la asta mai târziu, acum înapoi în Visual Studio.

Instalare și configurare EF Core

Avem nevoie să instalăm 2 pachete NuGet, fie din interfața Visual Studio, fie tot din terminal.

Dacă vrei s-o faci din terminal, trebuie să-l deschizi la adresa proiectului tău (fișierul .csproj, nu soluția) și să execuți următoarele comenzi:

dotnet add package Microsoft.EntityFrameworkCore.Design
dotnet add package Microsoft.EntityFrameworkCore.SqlServer

Acum ar trebui să poți folosi Entity Framework în proiectul tău, dar înainte de asta va trebui să configurezi un string de conexiune.

Pentru asta va trebui să mergi în fișierul appsettings.json din proiect și să creezi un nouă secțiune denumită ConnectionStrings.

"ConnectionStrings": {
  "Default": "Server=(local)\\sqlexpress;Database=MyDb;Integrated Security=true;Trusted_Connection=true;TrustServerCertificate=True"
}

În interiorul ei, va trebui să-ți definești conexiunea către o bază de SQL Server. Baza de date nu trebuie neapărat să existe, ea va fi creată automat de Entity Framework, dar va trebui totuși să ai SQL Server gata instalat pe mașina ta.

Sunt 2 lucruri pe care vreau să le mai știi înainte să mergem mai departe.

Server=(local)\\sqlexpress este numele serverului de SQL Server, așa cum l-ai denumit în momentul instalării, deci s-ar putea să fie diferit pentru tine.

Database=MyDb definește numele bazei de date, care așa cum spuneam, nu trebuie să existe, dar trebui să fii atent la numele pe care îl dai aici, pentru că va fi și numele real al bazei tale de date.

Restul configurărilor pot să le copiezi așa cum sunt, sunt destul de standard și nu vom intra în detalii acum.

Creezi o nouă clasă, denumită AppDbContext care va juca rolul de interfață pentru comunicarea directă cu baza de date.

public class AppDbContext : DbContext
{
    public AppDbContext(DbContextOptions options) : base(options)
    {
    }
}

Clasa AppDbContext trebuie să extindă DbContext, o clasă specifică a Entity Framework.

Ar trebui să ți se compileze codul de mai sus dacă ai instalat pachetele NuGet de care vorbeam mai devreme.

Mergem acum în clasa Program.cs și configurăm conexiunea cu Entity Framework:

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

// linia asta trebuie să fie după configurarea tuturor serviciilor    
var app = builder.Build();

Valoarea Default reprezintă numele stringului de conexiune configurat în appsettings.json , dacă ai dat alt nume acolo va trebui să pui aici exact acea valoare.

Cam asta e tot ceea ce trebuie să faci din cod, următorul pas e să creezi ceea ce poartă numele de “migrare”.

Crearea unei migrări

O migrare reprezintă acțiunea prin care executăm anumite comenzi pe baza de date, iar în cazul nostru, singura acțiune necesară în momentul ăsta e crearea bazei de date.

Acum e momentul în care o să folosim interfața CLI pe care am instalat-o la început.

Așa că trebuie să deschizi o fereastră de terminal la adresa unde se află proiectul tău (aceeași de mai devreme) și să execuți următoarele comenzi:

dotnet ef migrations add Initial
dotnet ef database update

Unde Initial reprezintă numele migrării.

În urma execuției primei comenzi vei vedea un nou director în proiectul tău denumit Migrations, EF Core va crea automat directorul și fișierele din interior, care conțin instrucțiuni scrise în C# pe care Entity Framework să le execute pe baza de date.

A doua comandă va executa instrucțiunile respective pe baza de date, al căror efect va fi crearea unei baze de date în serverul tau SQL Server (cel definit în stringul de conexiune).

Adăugarea de tabele

Pentru a adăuga o nouă tabelă în baza de date va trebui să-ți definești un “model” în cod, sau o clasă unde să definești numele și tipurile coloanelor din tabela respectivă.

class Employee
{
  public int Id { get; set; }
  public string FirstName { get; set; }
  public string LastName { get; set; }
  public string Email { get; set; }
  public DateTime DateOfBirth { get; set; }
}

Apoi definești un DbSet în clasa AppDbContext .

Employee poartă numele de “entitate” (entity), de aici și numele de Entity Framework. Orice clasă folosită pentru a defini tabele în baza de date va reprezenta o entitate.

public class AppDbContext : DbContext
{
  public DbSet<Employee> Employees { get; set; }

  public AppDbContext(DbContextOptions options) : base(options)
  {
  }
}

Numele proprietății, în cazul ăsta Employees va fi numele tabelei în baza de date, iar numele și tipul fiecărei proprietăți va fi numele și tipul tuturor coloanelor.

Acum tot ce va trebui să faci e să creezi o nouă migrare și să actualizezi din nou baza de date.

dotnet ef migrations add AddedEmployees
dotnet ef database update

Poți observa că numele migrării e diferit acum, încearcă să adaugi nume cât mai descriptive migrărilor tale, pentru a ști exact ce s-a întâmplat cu fiecare migrare doar din numele ei.

Interacțiunea cu baza de date

Pentru a executa orice fel de acțiune pe baza de date, citire, scriere etc. va fi nevoie să folosești AppDbContext.

În Program.cs poți să-ți definești un nou endpoint și să întorci drept răspuns toate înregistrările din tabela Employees.

app.MapGet("/employee", (AppDbContext db) =>
{
  return db.Employees;
})

AppDbContext e injectat automat în endpoint-ul tău prin containerul de dependency injection.

Concluzie

Cam asta e tot, așa cum îți spuneam și la încput, procesul e unul extrem de simplu.

Lucrurile se mai complică în momentul în care începi să adaugi relații între mai multe tabele și să execuți acțiuni pe toate o dată.

De asemenea, e posibil să mai întâlnești și incompatibilități între tipurile de date definite în C# și cele din baza de date.

Entity Framework te ajută să pui foarte repede la punct un data layer, dar în același timp deține și anumite particularități de care trebuie să fii conștient.

Alternative la Entity Framework mai sunt:

  • ADO .NET (soluția nativă și cea mai veche dintre toate pentru .NET)
  • Dapper

Atât pentru azi, pe data viitoare.

Hai în comunitate

Strategii de carieră și concepte tehnice explicate pe înțelesul tău.