Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Model EF ukládá podrobnosti o tom, jak se třídy aplikací a vlastnosti mapují na databázové tabulky a sloupce. Model EF můžete vytvořit dvěma hlavními způsoby:
Using Code First: Vývojář napíše kód k určení modelu. EF generuje modely a mapování za běhu na základě tříd entit a další konfigurace modelu poskytované vývojářem.
Pomocí EF Designeru: Vývojář nakreslí pole a čáry k určení modelu pomocí EF Designeru. Výsledný model je uložen jako XML v 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 existující databázi nebo k vytvoření nové databáze, což vede ke 4 různým pracovním postupům. Zjistěte, který z nich je pro vás nejvhodnější:
| Chci jen napsat kód... | Chci použít návrháře... | |
|---|---|---|
| Vytvářím novou databázi | Pomocí code First definujte model v kódu a pak vygenerujte databázi. | Pomocí modelu First definujte model pomocí polí a řádků a pak vygenerujte databázi. |
| Potřebuji získat přístup k existující databázi | Pomocí code First vytvořte model založený na kódu, který se mapuje na existující databázi. | Použijte Database First k vytvoření modelu polí a čar, který se mapuje na existující databázi. |
Podívejte se na video: Jaký pracovní postup EF mám použít?
Toto krátké video vysvětluje rozdíly a jak najít ten, který je pro vás správný.
Autor: Rowan Miller
Pokud se po sledování videa stále necítíte pohodlně rozhodnout, jestli chcete použít EF Designer nebo Code First, naučte se něco o obou metodách!
Pohled pod kapotou
Bez ohledu na to, jestli používáte Code First nebo EF Designer, má model EF vždy několik komponent:
Samotné doménové objekty aplikace nebo typy entit. To se často označuje jako vrstva objektu.
Koncepční model skládající se z typů entit a relací specifických pro doménu, které jsou popsány pomocí modelu Entity Data Model. Tato vrstva se často označuje písmenem "C" pro koncepční účely.
Model úložiště představující tabulky, sloupce a relace definované v databázi. Tato vrstva se často označuje písmenem "S", což znamená úložiště.
Mapování mezi koncepční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 jsou vytvoření, čtení, aktualizace a odstranění , do ekvivalentních operací s tabulkami v databázi.
Mapování mezi koncepčním modelem a objekty aplikace se často označuje jako mapování O-C. Ve srovnání s mapováním "C-S" je mapování "O-C" implicitní a 1:1: entity, vlastnosti a relace definované v koncepčním modelu se vyžadují, aby odpovídaly obrazcům a typům objektů .NET. Z EF4 a mimo ni se vrstva objektů může skládat z jednoduchých objektů s vlastnostmi bez jakýchkoli závislostí na EF. Obvykle se označují jako Plain-Old CLR Objects (POCO) a mapování typů a vlastností se provádí na základě konvencí přiřazování na základě názvů. Dříve v EF 3.5 došlo ke specifickým omezením pro vrstvu objektů, jako jsou entity, které musí odvozovat z třídy EntityObject a musí přenášet atributy EF pro implementaci mapování "O-C".