Entity Framework

Znany też jako:EFEF CoreEntity Framework Core

Definicja #

Entity Framework (EF) to narzędzie ORM (Object-Relational Mapping) firmy Microsoft dla platformy .NET, które upraszcza operacje na relacyjnych bazach danych. Zamiast pisać surowe zapytania SQL, programista operuje na obiektach C# — EF tłumaczy te operacje na SQL automatycznie.

EF jest analogiem dla .NET tego, czym Hibernate jest dla Javy. Entity Framework Core to nowoczesna, wieloplatformowa wersja działająca na .NET Core i .NET 5+, wspierająca wiele baz danych (SQL Server, PostgreSQL, MySQL, SQLite, Oracle).

Kluczowe podejścia do modelowania:

  • Code First — programista definiuje klasy C# (encje), a EF generuje schemat bazy danych przez migracje. Najczęściej stosowane podejście w nowych projektach.
  • Database First — EF generuje klasy C# na podstawie istniejącego schematu bazy danych (scaffolding)
  • Model First — podejście przestarzałe, projektowanie w designerze wizualnym

Najważniejsze mechanizmy EF Core:

  • DbContext — centralny obiekt reprezentujący sesję z bazą danych; zawiera DbSet<T> dla każdej encji
  • LINQ-to-Entities — zapytania pisane w C# (Where, Select, Include, GroupBy) tłumaczone na SQL
  • Migracje — wersjonowanie schematu bazy danych (Add-Migration, Update-Database)
  • Lazy/Eager Loading — kontrola nad ładowaniem powiązanych encji (Include, ThenInclude)
  • Change Tracking — automatyczne śledzenie zmian i generowanie UPDATE

Zastosowania #

Entity Framework stosuje się do:

  • Aplikacji ASP.NET Core z relacyjną bazą danych — CRUD, transakcje, relacje jeden-do-wielu i wiele-do-wielu bez pisania SQL
  • Wersjonowania schematu bazy danych — migracje Code First pozwalają na kontrolowane zmiany schematu w CI/CD
  • Szybkiego prototypowania aplikacji — Code First z automatycznym tworzeniem tabel przyspiesza starty projektów
  • Aplikacji z wieloma dostawcami baz danych — ten sam kod EF Core działa z SQL Server, PostgreSQL i SQLite (np. dev vs prod)
  • Raportowania i analityki — złożone zapytania LINQ z projekcjami, grupowaniem i agregacjami bez opuszczania C#

Ścieżka nauki #

Entity Framework Core jest jednym z najpopularniejszych ORM dla .NET — niezbędna wiedza dla większości .NET developerów.

Zacznij od:

  • Instalacja: dotnet add package Microsoft.EntityFrameworkCore.SqlServer
  • Tworzenie pierwszego DbContext i klasy encji (modele C#)
  • Podejście Code First: migracje (Add-Migration InitialCreate, Update-Database)
  • Podstawowe operacje CRUD: DbContext.Add(), SaveChanges(), Find(), Remove()
  • Zapytania LINQ: Where, FirstOrDefault, Include (eager loading)

Następnie pogłębiaj:

  • Konfiguracja relacji: HasOne, HasMany, WithMany — Fluent API vs Data Annotations
  • Optymalizacja zapytań: AsNoTracking(), projekcje (Select), unikanie N+1
  • Transakcje i IDbContextFactory w aplikacjach wielowątkowych
  • Wzorzec Repository i Unit of Work z EF Core
  • Alternatywy: Dapper (micro-ORM, surowy SQL), NHibernate — kiedy używać czego

FAQ #

Czym różni się Entity Framework od Dappera?
Entity Framework to pełny ORM — automatycznie generuje SQL z LINQ, śledzi zmiany obiektów i zarządza relacjami. Dapper to micro-ORM — wykonuje surowe zapytania SQL i mapuje wyniki na obiekty C#. EF jest wygodniejszy i szybszy w developmencie, Dapper daje pełną kontrolę nad SQL i jest wydajniejszy przy złożonych zapytaniach.
Czym różni się EF 6 od EF Core?
Entity Framework 6 to stara wersja działająca tylko na .NET Framework (Windows). EF Core to przepisana od nowa, wieloplatformowa wersja dla .NET Core i .NET 5+, wspierająca PostgreSQL, MySQL, SQLite i inne bazy. Nowe projekty zawsze powinny używać EF Core.
Co to jest problem N+1 w EF Core?
Problem N+1 polega na wykonaniu 1 zapytania do pobrania listy encji, a następnie N zapytań dla każdej encji po powiązane dane. W EF Core rozwiązuje się go przez Include() (eager loading) lub projekcje Select() zamiast ładowania całych encji z lazy loadingiem.
Ile zarabia .NET Developer znający EF Core?
EF Core to standardowa umiejętność .NET developera — wymagana w większości ofert pracy. Mid .NET Developer zarabia w Polsce od 10 000 do 18 000 zł brutto, senior od 18 000 do 30 000 zł. Sama znajomość EF Core nie wyróżnia kandydata, ale jej brak jest dyskwalifikujący.
Czy EF Core generuje wydajne zapytania SQL?
EF Core generuje przyzwoite zapytania SQL dla typowych operacji, ale złożone przypadki mogą wymagać optymalizacji. Narzędzia diagnostyczne: logowanie SQL (LogTo), profiler bazy danych. Przy wydajnościowo krytycznych zapytaniach warto użyć surowego SQL przez FromSqlRaw() lub przejść na Dapper.
Ostatnia aktualizacja:

Powiązane hasła

Technologie i biblioteki, które najczęściej pojawiają się razem z Entity Framework w ogłoszeniach.

Cały słownik IT

Przeglądaj słownik IT alfabetycznie

Wybierz literę, aby zobaczyć wszystkie hasła zaczynające się od niej.