Vytvoření modelu

Model EF ukládá podrobnosti o tom, jak se třídy a vlastnosti aplikace mapují na databázové tabulky a sloupce. Vytvořit model EF lze dvěma hlavními způsoby:

  • Pomocí Code First: Vývojář napíše kód, kterým model specifikuje. EF generuje modely a mapování za běhu na základě tříd entit a další konfigurace modelu specifikované vývojářem.

  • Pomocí EF Designeru: Vývojář nakreslí v EF Designeru pole a čáry, kterými model specifikuje. Výsledný model se uloží jako XML do souboru s příponou EDMX. Doménové objekty aplikace se obvykle generují automaticky z konceptuálního modelu.

Pracovní postupy EF

Oba tyto přístupy lze použít k cílení na stávající databázi nebo vytvoření nové databáze, z čehož vyplývají čtyři různé pracovní postupy. Podívejte se, který z nich vám vyhovuje nejvíce:

Chci jen psát kód... Chci použít jen Designer...
Vytvářím novou databázi Pomocí přístupu Code First definujte model v kódu a vygenerujte databázi. Pomocí přístupu Model First definujte model pomocí polí a čar a vygenerujte databázi.
Potřebuji získat přístup ke stávající databázi Pomocí přístupu Code First vytvořte model založený na kódu, který se namapuje na stávající databázi. Pomocí přístupu Database First vytvořte model s poli a čarami, který se namapuje na stávající databázi.

Podívejte se na video: Jaký pracovní postup EF mám použít?

V tomto krátkém videu jsou vysvětleny rozdíly mezi jednotlivými přístupy a způsob, jak si vybrat ten správný.

Autor: Rowan Miller

Which Workflow ThumbWMV | MP4 | WMV (ZIP)

Pokud jste se podívali na video, ale pořád si nejste jistí, jestli použít EF Designer nebo Code First, seznamte se s oběma.

Pohled pod pokličku

Ať už používáte Code First nebo EF Designer, model EF má vždy několik součástí:

  • Objekty domény aplikace nebo samotné typy entit. Často se označují jako vrstva objektu

  • Konceptuální model sestávající z typů entit a relací specifických pro danou doménu, který je popsán pomocí modelu EDM (Entity Data Model). Tato vrstva se často označuje písmenem „C“ (jako conceptual).

  • Model úložiště představující tabulky, sloupce a relace definované v databázi. Tato vrstva se často označuje písmenem „S“ (jako storage).

  • Mapování mezi konceptuálním modelem a schématem databáze. Toto mapování se často označuje jako mapování C-S.

Mapovací modul EF využívá mapování C-S k transformaci operací s entitami (jako je vytváření, čtení, aktualizace a odstraňování) na ekvivalentní operace s tabulkami v databázi.

Mapování mezi konceptuálním modelem a objekty aplikace se často označuje jako mapování O-C. V porovnání s mapováním C-S funguje mapování O-C implicitně a způsobem „jeden na jednoho“: entity, vlastnosti a relace definované v konceptuálním modelu musí odpovídat tvarům a typům objektů .NET. Počínaje verzí EF4 mohou vrstvu objektů tvořit jednoduché objekty s vlastnostmi bez jakýchkoli závislostí na EF. Obvykle se označují jako POCO (Plain-Old CLR Objects) a mapování typů a vlastností se provádí na základě konvencí shody názvů. Starší verze EF 3.5 obsahovala specifická omezení pro vrstvu objektů – například entity musely být odvozeny ze třídy EntityObject a pro implementaci mapování O-C musely mít atributy EF.