Úvod do Entity Framework Core

Miroslav Holec       13.07.2020       Entity Framework, .NET Core, ASP.NET Core       2066 zobrazení

Entity Framework patřil vždy mezi mou oblíbenou technologii a nejinak je tomu i v případě Entity Framework Core. Nehodí se pro všechny druhy projektů, ale tam kde najde své uplatnění dokáže výrazně zpřehlednit aplikaci a ušetřit spoustu času.

Když se poprvé objevila metodika Code First u tradičního Entity Frameworku, pochopil jsem EF do hloubky a asi před 5 lety jsem v této oblasti zorganizoval historicky svá první školení. Mezitím se stalo hodně událostí. Vyšel nový Entity Framework Core a přes své porodní bolesti dokráčel až do verze 3.1, která vývojářům nabízí stejný komfort jako jeho tradiční verze EF. A tak se k EF Core opět vracím a seznamuji vývojáře s touto technologií.

Chcete-li s EF Core začít, rád bych v tomto článku zmínil pár postřehů a tipů, čemu byste měli věnovat pozornost. Na konci článku najdete odkaz na můj webinář, díky kterému můžete získat o této technologii pevný obecný přehled. Pojďme tedy shrnout fakta:

  • EF 6 i EF Core lze použít v .NET Core 3.x, nicméně MS rozvíjí nyní pouze EF Core (aktuální verze EF Core 3.1)
  • EF Core oproti EF 6 podporuje plno malých, ale užitečných funkcí
  • EF Core oproti EF 6 podporuje Azure Cosmos DB + má od svého počátku InMemory provider pro testování
  • EF Core oproti EF 6 ale také pár věcí postrádá (entity splitting, M:N, update modelu z DB) – většina features je plánovaná do další verze EF Core 5.0 (podzim 2020) a hlavně se bez těchto funkcí dá obejít
  • EF Core oproti EF 6 některé funkce nikdy podporovat nebude (vizuální modelovátka, EDMX, různé vizuální průvodce)

Když začnete s EF Core, budete muset pochopit, jak funguje tzv. DbContext, který tvoří jádro celého ORM. V souvislosti s tím budete zároveň nastavovat konfiguraci, předávat connection strings a určovat lifestyle DbContextu v závislosti na architektuře a typu projektu. To je naštěstí víceméně vymyšlené a budete to dělat jen jednou při nastavení projektu.

Další oblastí je mapování. Technologie ctí metodiku Code First, čili všechny C# třídy s jejich vlastnostmi se musí registrovat do DbContextu tak, aby se správně promapovaly skrze provider do konečného úložiště (SQL / Sqlite, MySql, Cosmos). K tomu použijete dodatečné atributy tříd a properties nebo tzv. Fluent API, které Vám umožní držet konfiguraci mapování mimo třídy tvořící model.

V souvislosti se změnami modelu budete používat tzv. migrace. Ty reprezentují změnu modelu, která se překládá na konkrétní dotazy zvoleného úložiště (například SQL). Migrace budou součástí Vašeho projektu a budete je sdílet s ostatními vývojáři. Ti vždy migrace aplikují na své úložiště.

Kromě těchto technikálií budete chtít získávat data z úložiště a následné změny propagovat zpět v podobě updatů. K tomu hojně využijete LINQ. Zejména v dotazování Vás také čeká seznámení s tradičními přístupy pro získání jednoho záznamu, kolekcí a způsobem, jak EF Core drží určitá data v paměti a jakým způsobem sleduje změny (tzv. change tracking).

Právě oblast provádění změn na datech bude znamenat změnu myšlení pro vývojáře, kteří doposud s ORM nepracovali. Oproti tradičním přístupům totiž budete pracovat s daty v paměti a generování updatů a deletů necháte na ORM. Je to taková magie, která pracuje za Vás. Černá magie to však může být ve chvíli, když necháte ORM svobodu a bez potřebných znalostí ztratíte nad aplikací kontrolu.

Chcete se s principy Entity Framework Core seznámit blíže? Přemýšlíte nad použitím EF Core ve Vašich aplikacích? Podívejte se na mé školení EF Core…


Školení: Entity Framework Core

Naučím Vás myslet v ORM a používat EF Core v celém životním cyklu aplikace od základních modelovacích scénářů až po komplexnější modely. Naučíte se psát efektivní dotazy do databáze a ověřovat si jejich výkonnost.

Další informace o školení najdete zde…

 

hodnocení článku

0       Hodnotit mohou jen registrované uživatelé.

 

 

 

Nový příspěvek

 

Příspěvky zaslané pod tento článek se neobjeví hned, ale až po schválení administrátorem.

                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.

Nyní zakládáte pod článkem nové diskusní vlákno.
Pokud chcete reagovat na jiný příspěvek, klikněte na tlačítko "Odpovědět" u některého diskusního příspěvku.

Nyní odpovídáte na příspěvek pod článkem. Nebo chcete raději založit nové vlákno?

 

  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

Příspěvky zaslané pod tento článek se neobjeví hned, ale až po schválení administrátorem.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback