Entity Framework (EF) je ORM (Object-Relational Mapper) alat koji omogućava rad sa bazom podataka koristeći C# klase umesto direktnog pisanja SQL upita. Razvijen je od strane Microsoft i deo je .NET ekosistema.
U modernim projektima koristi se Entity Framework Core, koji radi sa:
-
ASP.NET Core
-
konzolnim aplikacijama
-
Blazor aplikacijama
-
Windows servisima
-
desktop aplikacijama
Zašto koristiti Entity Framework?
Bez ORM-a, rad sa bazom izgleda ovako:
-
Otvaraš konekciju
-
Pišeš SQL
-
Mapiraš rezultate u objekte
-
Zatvaraš konekciju
-
Brineš o SQL injection zaštiti
Sa EF-om:
EF automatski:
-
Pretvara LINQ u SQL
-
Izvršava upit
-
Mapira podatke u objekte
-
Upravljа konekcijom
Osnovni koncepti
1️⃣ DbContext
DbContext je centralna klasa za komunikaciju sa bazom.
2️⃣ Entiteti (Modeli)
Klase predstavljaju tabele u bazi.
3️⃣ DbSet
DbSet<T> predstavlja tabelu u bazi.
Pristupi u EF-u
Code First
Bazu generišeš iz C# modela.
✔ Najčešće korišćen pristup
✔ Idealno za nove projekte
Database First
Modeli se generišu iz postojeće baze.
✔ Koristi se u legacy sistemima
Model First (retko danas)
Migracije
Migracije omogućavaju verzionisanje baze.
Komande:
EF kreira SQL skriptu i ažurira bazu.
LINQ i EF
Jedna od najvećih prednosti EF-a je integracija sa LINQ-om.
EF prevodi LINQ u SQL upit.
Relacije
One-to-Many
Many-to-Many
Automatski podržano u EF Core.
Lazy vs Eager Loading
Eager Loading
Lazy Loading
Podaci se učitavaju tek kada im pristupiš.
Performanse
Važne optimizacije:
1️⃣ AsNoTracking()
Za read-only podatke:
2️⃣ Select projekcija
Ne učitavaj celu tabelu ako ti treba samo par kolona.
3️⃣ Indeksi u bazi
EF ne rešava loš dizajn baze.
Prednosti EF-a
✔ Brži razvoj
✔ Manje SQL koda
✔ Integracija sa LINQ
✔ Migracije
✔ Cross-platform podrška
Mane EF-a
❌ Kompleksni upiti mogu biti sporiji
❌ Potrebno razumevanje kako EF generiše SQL
❌ Debugovanje generisanog SQL-a može biti zahtevno
Kada koristiti EF?
EF je odličan za:
-
Enterprise aplikacije
-
Finansijske sisteme
-
CRM / ERP sisteme
-
Web API projekte
Nije idealan za:
-
Sisteme sa ekstremnim performansama (npr. high-frequency trading)
-
Aplikacije gde je SQL jako specifičan i optimizovan ručno
EF vs Dapper
Dapper je micro ORM:
-
Brži
-
Manje apstrakcije
-
Ručno pišeš SQL
EF:
-
Više automatizacije
-
Sporiji od Dapper-a
-
Mnogo produktivniji za velike projekte
Zaključak
Entity Framework Core je moćan alat za rad sa bazom u C# projektima. Omogućava objektno orijentisan pristup podacima, integraciju sa LINQ-om i jednostavno upravljanje migracijama.
Ako radiš C# backend, posebno sa ASP.NET Core, EF Core je gotovo standard.

Facebook Comments