Programovanie

Preskúmajte rôzne prístupy k modelovaniu entít v Entity Framework

Entity Framework zjednodušuje prístup k dátam vo vašej aplikácii tým, že vám umožňuje písať kód na vykonávanie operácií CRUD (vytváranie, čítanie, aktualizácia a mazanie), takže nie je potrebná priama interakcia s poskytovateľom základnej databázy. Existujú tri prístupy k modelovaniu vašich entít v Entity Framework: Code First, Model First a Database First. Tento článok pojednáva o všetkých týchto troch prístupoch a ich výhodách a nevýhodách.

Čo je to Entity Framework? Prečo všetok ten humbuk?

Microsoft Entity Framework je rozšírený ORM, ktorý vám pomôže izolovať objektový model vašej aplikácie od dátového modelu. Je to open source rámec ORM pre ADO.Net a je zahrnutý ako súčasť .Net Framework. Pri používaní nástrojov ORM sa môžete sústrediť na obchodnú logiku aplikácie a ukladať údaje do databázy s oveľa menším počtom kódov. Môžete využiť výhodu ORM na prevod údajov medzi systémami nekompatibilného typu - svoje doménové objekty môžete ukladať do základnej databázy bez obáv z vnútorných zložitostí spôsobu, akým sú údaje skutočne uložené. Entity Framework je vyspelý server ORM od spoločnosti Microsoft a je možné ho použiť so širokou škálou databáz.

V nasledujúcich častiach preskúmame každý z troch prístupov k modelovaniu entít pomocou Entity Framework.

Najskôr kód

Prístup Code First vám pomôže vytvoriť entity vo vašej aplikácii zameraním na požiadavky domény. V zásade môžete pomocou tohto prístupu sledovať Domain Driven Design (DDD). Po definovaní vašich entít a zadaní konfigurácií môžete vytvoriť databázu za behu pomocou oboch. Prístup Code First vám dáva väčšiu kontrolu nad vašim kódom - už nemusíte pracovať s automaticky generovaným kódom. Páči sa mi tento prístup, pretože vám dáva veľkú flexibilitu a kontrolu. Ak máte pripravené doménové triedy, vždy by som uprednostnil tento prístup, pretože z doménových tried môžete svoju databázu ľahko vytvoriť.

Nevýhodou tohto prístupu je, že by sa stratili všetky zmeny v základnej schéme databázy; v tomto prístupe váš kód definuje a vytvára databázu. Prístup Code First vám umožňuje používať Entity Framework a definovať model entity bez návrhára alebo súborov XML. Na definovanie modelu a vygenerovanie databázy môžete použiť prístup POCO (Plain Old CLR Objects).

V tomto prístupe by ste zvyčajne vytvorili triedy entít. Tu je príklad; nižšie je uvedená typická trieda entít.

verejná trieda Produkt

   {

public int ProductId {get; sada; }

verejný reťazec ProductName {get; sada; }

public float Price {get; sada; }

   }

Ďalej by ste mali definovať vlastný kontext údajov rozšírením triedy DbContext, ako je uvedené nižšie.

kontext verejnej triedy: DbContext

   {

verejné produkty DbSet {get; sada; }

   }

Nakoniec by ste mali určiť pripojovací reťazec v konfiguračnom súbore. Skončil si!

Najskôr databáza

Prístup Database First môžete použiť, ak je databáza už navrhnutá a je pripravená. V tomto prístupe sa dátový model entity (EDM) vytvára z podkladovej databázy. Ako príklad použijete prístup najskôr na databázu, keď generujete súbory edmx v integrovanom vývojovom prostredí Visual Studio z databázy. Ručné zmeny v databáze sú možné ľahko a EDM môžete kedykoľvek aktualizovať, ak je to potrebné (napríklad ak sa zmení schéma základnej databázy). Ak to chcete urobiť, jednoducho aktualizujte EDM z databázy v prostredí Visual Studio IDE.

Najprv model

V prístupe Model First môžete najskôr vytvoriť EDM a potom z neho vygenerovať databázu. Spravidla by ste vytvorili prázdny EDM pomocou sprievodcu Entity Data Model Wizard v Visual Studio, definovali entity a ich vzťahy v Visual Studio a potom vygenerovali databázu z tohto definovaného modelu. Entity môžete ľahko vytvárať a definovať ich vzťahy a asociácie v návrhári v aplikácii Visual Studio. Pomocou návrhára môžete tiež určiť vlastnosť Key a dátové typy pre vlastnosti pre vaše entity. Čiastkové triedy môžete použiť na implementáciu ďalších funkcií do svojich entít.

Dobre, ale kedy by ste mali použiť prístup Model First? Pokiaľ nie sú pripravené ani doménové triedy, ani databáza, a radšej by ste definovali dátový model pomocou vizuálneho návrhára, tento prístup je pre vás. Rovnako ako v prístupe Code First, aj v prístupe Model First by sa však manuálne zmeny v databáze stratili, pretože model definuje databázu.

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