Programavimas

Išnagrinėkite skirtingus būdų modelius „Entity Framework“

„Entity Framework“ supaprastina prieigą prie duomenų jūsų programoje, suteikdama galimybę rašyti kodą, kad atliktumėte CRUD (kūrimo, skaitymo, atnaujinimo ir ištrynimo) operacijas, be būtinybės tiesiogiai bendrauti su pagrindiniu duomenų bazės teikėju. Yra trys būdai, kaip modifikuoti subjektus „Entity Framework“: „Pirmiausia kodas“, „Pirmiausias modelis“ ir „Pirmiausia duomenų bazė“. Šiame straipsnyje aptariami visi šie trys požiūriai ir jų pliusai bei minusai.

Kas yra „Entity Framework“? Kodėl visa ažiotažas?

„Microsoft Entity Framework“ yra išplėstinė ORM, padedanti izoliuoti programos objekto modelį nuo duomenų modelio. Tai yra atviro kodo ORM sistema, skirta ADO.Net ir įtraukta kaip .Net Framework dalis. Naudodamiesi ORM įrankiais, galite sutelkti dėmesį į programos verslo logiką ir saugoti duomenis duomenų bazėje su daug mažesniu kodu. Norėdami konvertuoti duomenis tarp nesuderinamų tipų sistemų, galite pasinaudoti ORM pranašumais - galite saugoti savo domeno objektus į pagrindinę duomenų bazę, nesijaudindami dėl vidinių subtilybių, kaip duomenys iš tikrųjų saugomi. „Entity Framework“ yra brandus „Microsoft“ ORM ir gali būti naudojamas su įvairiausiomis duomenų bazėmis.

Tolesniuose skyriuose mes išnagrinėsime kiekvieną iš trijų būdų, kaip modeliuoti objektus naudojant „Entity Framework“.

Pirmiausia kodas

„Code First“ metodas padeda jums susikurti programos taikomuosius objektus, sutelkiant dėmesį į domeno reikalavimus. Iš esmės, naudodamiesi šiuo požiūriu, galite sekti domenų valdomą dizainą (DDD). Kai bus apibrėžti jūsų subjektai ir nurodytos konfigūracijos, galite sukurti duomenų bazę skriejant, naudodamiesi abiem. „Code First“ metodas suteikia jums daugiau galimybių kontroliuoti kodą - jums nebereikia dirbti su automatiškai sugeneruotu kodu. Man patinka šis požiūris, nes tai suteikia jums daug lankstumo ir kontrolės. Jei turite parengtas domenų klases, aš visada norėčiau naudoti šį metodą, nes jūs galite lengvai sukurti savo duomenų bazę iš domeno klasių.

Šio požiūrio trūkumas yra tai, kad visi pagrindinės duomenų bazės schemos pakeitimai būtų prarasti; tokiu būdu jūsų kodas apibrėžia ir sukuria duomenų bazę. „Code First“ metodas leidžia naudoti „Entity Framework“ ir apibrėžti objekto modelį be dizainerio ar XML failų. Norėdami naudoti modelį ir sukurti savo duomenų bazę, galite naudoti POCO (paprastų senų CLR objektų) metodą.

Taikydami šį metodą, paprastai kurkite esybių klases. Štai pavyzdys; tipinė subjektų klasė pateikiama žemiau.

visuomenės klasės produktas

   {

public int ProductId {get; rinkinys; }

vieša eilutė „ProductName“ {get; rinkinys; }

public float Kaina {get; rinkinys; }

   }

Tada turėtumėte apibrėžti pasirinktinį duomenų kontekstą, išplėsdami „DbContext“ klasę, kaip parodyta žemiau.

viešosios klasės kontekstas: DbContext

   {

viešieji „DbSet“ produktai {get; rinkinys; }

   }

Galiausiai, konfigūracijos faile turėtumėte nurodyti ryšio eilutę. Su tavimi baigta!

Pirmiausia duomenų bazė

Galite naudoti metodą „Pirmiausia duomenų bazė“, jei duomenų bazė jau sukurta ir paruošta. Taikant šį metodą, subjekto duomenų modelis (EDM) kuriamas iš pagrindinės duomenų bazės. Kaip pavyzdį, pirmiausia naudojate duomenų bazės metodą, kai iš duomenų bazės sugeneruojate „Visual Studio IDE“ edmx failus. Neautomatiškai pakeisti duomenų bazę galima lengvai, o prireikus visada galite atnaujinti EDM (pavyzdžiui, jei pasikeičia pagrindinės duomenų bazės schema). Norėdami tai padaryti, tiesiog atnaujinkite EDM iš „Visual Studio IDE“ duomenų bazės.

Pirmiausia modelis

„Model First“ požiūriu pirmiausia galite sukurti EDM, tada iš jo sugeneruoti duomenų bazę. Paprastai tuščią EDM sukursite naudodami „Entity Data Model Wizard“, esančią „Visual Studio“, apibrėžkite objektus ir jų ryšius „Visual Studio“, tada generuosite duomenų bazę iš šio apibrėžto modelio. „Visual Studio“ dizaineryje galite lengvai sukurti objektus ir apibrėžti jų santykius bei asociacijas. Taip pat galite naudoti ypatybę „Key“ ir ypatybių duomenų tipus naudodami dizainerį. Norėdami naudoti papildomas funkcijas savo objektuose, galite naudoti dalines klases.

Gerai, bet kada turėtumėte naudoti „Model First“ metodą? Na, jei nei domeno klasės, nei duomenų bazė nėra parengtos, o jūs labiau norėtumėte apibrėžti duomenų modelį naudodami vizualų dizainerį, šis metodas jums tinka. Tačiau, kaip ir „Code First“ metodo atveju, „Model First“ požiūriu rankiniai duomenų bazės pakeitimai būtų prarasti, nes modelis apibrėžia duomenų bazę.