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