Programování

Prozkoumejte různé přístupy k modelování entit v Entity Framework

Entity Framework zjednodušuje přístup k datům ve vaší aplikaci tím, že vám umožňuje psát kód k provádění operací CRUD (vytváření, čtení, aktualizace a mazání) bez nutnosti přímé interakce s poskytovatelem podkladové databáze. Existují tři přístupy k modelování vašich entit v Entity Framework: Code First, Model First a Database First. Tento článek pojednává o všech těchto třech přístupech a jejich výhodách a nevýhodách.

Co je to Entity Framework? Proč všechny ty humbuky?

Microsoft Entity Framework je rozšířený ORM, který vám pomůže izolovat objektový model vaší aplikace od datového modelu. Je to open source ORM framework pro ADO.Net a je součástí jako .Net Framework. Při používání nástrojů ORM se můžete zaměřit na obchodní logiku aplikace a ukládat data do databáze s mnohem menším množstvím kódu. Můžete využít výhod ORM pro převod dat mezi systémy nekompatibilního typu - můžete ukládat své doménové objekty do podkladové databáze, aniž byste se museli starat o vnitřní složitost toho, jak jsou data ve skutečnosti uložena. Entity Framework je vyspělý ORM od společnosti Microsoft a lze jej použít s širokou škálou databází.

V následujících částech prozkoumáme každý ze tří přístupů k modelování entit pomocí Entity Framework.

Nejprve kód

Přístup Code First vám pomůže vytvořit entity ve vaší aplikaci zaměřením na požadavky domény. V podstatě můžete pomocí tohoto přístupu sledovat Domain Driven Design (DDD). Jakmile jsou vaše entity definovány a konfigurace jsou zadány, můžete vytvořit databázi za běhu pomocí obou. Přístup Code First vám dává větší kontrolu nad vaším kódem - už nemusíte pracovat s automaticky generovaným kódem. Líbí se mi tento přístup, protože vám dává velkou flexibilitu a kontrolu. Pokud máte připravené doménové třídy, vždy bych upřednostňoval tento přístup, protože můžete snadno vytvořit svou databázi z doménových tříd.

Nevýhodou tohoto přístupu je, že by došlo ke ztrátě jakýchkoli změn v základním schématu databáze; v tomto přístupu váš kód definuje a vytvoří databázi. Přístup Code First umožňuje používat Entity Framework a definovat model entity bez návrháře nebo souborů XML. K definování modelu a generování databáze můžete použít přístup POCO (Plain Old CLR Objects).

V tomto přístupu byste obvykle vytvořili třídy entit. Zde je příklad; níže je uvedena typická třída entit.

veřejná třída Produkt

   {

public int ProductId {get; soubor; }

veřejný řetězec ProductName {get; soubor; }

public float Price {get; soubor; }

   }

Dále byste měli definovat vlastní kontext dat rozšířením třídy DbContext, jak je znázorněno níže.

kontext veřejné třídy: DbContext

   {

veřejné produkty DbSet {get; soubor; }

   }

Nakonec byste měli zadat připojovací řetězec v konfiguračním souboru. Jsi hotov!

Nejprve databáze

Pokud je databáze již navržena a je připravena, můžete použít přístup Database First. V tomto přístupu je Entity Data Model (EDM) vytvořen z podkladové databáze. Jako příklad použijete nejprve přístup k databázi, když generujete soubory edmx v IDE sady Visual Studio z databáze. Ruční změny v databázi je možné snadno a EDM můžete v případě potřeby kdykoli aktualizovat (například pokud se změní schéma podkladové databáze). Chcete-li to provést, jednoduše aktualizujte EDM z databáze v IDE sady Visual Studio.

Nejprve model

V přístupu Model First můžete nejprve vytvořit EDM a poté z něj vygenerovat databázi. Obvykle byste vytvořili prázdnou EDM pomocí průvodce Entity Data Model Wizard v sadě Visual Studio, definovali entity a jejich vztahy v sadě Visual Studio a poté vygenerovali databázi z tohoto definovaného modelu. V návrháři v aplikaci Visual Studio můžete snadno vytvářet entity a definovat jejich vztahy a přidružení. Můžete také určit Key vlastnost a datové typy pro vlastnosti pro vaše entity pomocí návrháře. Částečné třídy můžete použít k implementaci dalších funkcí ve svých entitách.

Dobře, ale kdy byste měli použít přístup Model First? Pokud nejsou ani doménové třídy, ani databáze připravené a raději byste definovali datový model pomocí vizuálního návrháře, je tento přístup pro vás. Stejně jako v přístupu Code First, ale v přístupu Model First by došlo ke ztrátě ručních změn v databázi, protože model definuje databázi.

$config[zx-auto] not found$config[zx-overlay] not found