it:sw:ef_core
Obsah
Entity Framework Core (EF Core)
Entity Framework Core je open-source, odlehčená a multiplatformní verze oblíbené technologie Entity Framework. Slouží jako most mezi vaším objektovým kódem (C#) a relační databází (SQL Server, PostgreSQL, MySQL, SQLite atd.).
1. Základní principy
EF Core funguje na principu mapování tříd na databázové tabulky.
- Model: Vaše C# třídy (entity), které reprezentují data.
- DbContext: Hlavní třída, která spravuje připojení k databázi a umožňuje dotazování a ukládání dat.
- Provider: Specifická knihovna pro konkrétní databázi (např.
Microsoft.EntityFrameworkCore.SqlServer).
—
2. Tři přístupy k vývoji
| Přístup | Popis |
|---|---|
| Code First | Nejdříve napíšete C# třídy a EF Core z nich vygeneruje databázi. (Nejpoužívanější) |
| Database First | Máte hotovou databázi a EF Core z ní vygeneruje C# třídy (tzv. scaffolding). |
| Model First | Návrh modelu ve vizuálním editoru (v EF Core již není nativně podporováno). |
—
3. Migrace: Správa schématu
Migrace jsou klíčovou vlastností EF Core. Umožňují vám měnit strukturu databáze synchronizovaně s vaším kódem.
- Změníte třídu v C# (např. přidáte vlastnost
Email). - Spustíte příkaz
dotnet ef migrations add PřidáníEmailu. - EF Core vygeneruje SQL skript, který aktualizuje databázi pomocí
dotnet ef database update.
—
4. Dotazování pomocí LINQ
Místo psaní SQL řetězců používáte LINQ. EF Core tyto dotazy automaticky přeloží do optimalizovaného SQL pro danou databázi.
using (var db = new MyDbContext()) {
var uzivatele = db.Users
.Where(u => u.Active)
.OrderBy(u => u.Name)
.ToList();
}
—
5. Klíčové vlastnosti
- Change Tracking: EF Core sleduje změny, které provedete na objektech, a při volání
SaveChanges()automaticky vygeneruje příkazy INSERT, UPDATE nebo DELETE. - Eager vs. Lazy Loading: Možnost zvolit, zda se mají související data (např. objednávky u zákazníka) načíst hned, nebo až při přístupu k nim.
- Podpora pro asynchronní operace: Metody jako
ToListAsync()neboSaveChangesAsync()pro vysoký výkon aplikací.
—
6. Oblasti použití
- Backendy webových aplikací (ASP.NET Core).
- Desktopové aplikace (WPF, WinForms).
- Cloudové služby a mikroslužby.
Související články:
Tagy: programming dot-net csharp ef-core database orm development
it/sw/ef_core.txt · Poslední úprava: autor: admin
