Uživatelské nástroje

Nástroje pro tento web


it:sw:ef_core

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() nebo SaveChangesAsync() 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