Programmēšana

Izpētiet dažādas pieejas modeļu entītijām Entity Framework

Entity Framework vienkāršo piekļuvi datiem jūsu lietojumprogrammā, ļaujot jums rakstīt kodu, lai veiktu CRUD (izveide, lasīšana, atjaunināšana un dzēšana) darbību, nenozīmē nepieciešamību tieši mijiedarboties ar pamata datu bāzes nodrošinātāju. Entītiju ietvarā savu entītiju modelēšanai ir trīs pieejas: vispirms kods, vispirms modelis un vispirms datu bāze. Šajā rakstā ir aplūkotas visas šīs trīs pieejas un to plusi un mīnusi.

Kas ir Entity Framework? Kāpēc visa ažiotāža?

Microsoft Entity Framework ir paplašināta ORM, kas palīdz izolēt lietojumprogrammas objekta modeli no datu modeļa. Tas ir ADO.Net atvērtā pirmkoda ORM ietvars un ir iekļauts .Net Framework daļā. Izmantojot ORM rīkus, varat koncentrēties uz lietojumprogrammas biznesa loģiku un saglabāt datus datu bāzē ar daudz mazāku kodu. Varat izmantot ORM priekšrocības, lai pārveidotu datus starp nesaderīga tipa sistēmām - jūs varat saglabāt domēna objektus pamatā esošajā datu bāzē, neuztraucoties par iekšējām sarežģītībām par to, kā dati faktiski tiek glabāti. Entity Framework ir nobriedusi Microsoft ORM, un to var izmantot ar visdažādākajām datu bāzēm.

Turpmākajās sadaļās mēs izpētīsim katru no trim pieejām entītiju modelēšanai, izmantojot Entity Framework.

Vispirms kods

Code First pieeja palīdz jums izveidot lietojumprogrammas entītijas, koncentrējoties uz domēna prasībām. Būtībā, izmantojot šo pieeju, varat sekot domēna virzītam dizainam (DDD). Kad jūsu entītijas ir definētas un konfigurācijas norādītas, varat izveidot datu bāzi lidojumā, izmantojot abus. Pieeja Code First dod jums lielāku kontroli pār savu kodu - jums vairs nav jāstrādā ar automātiski ģenerētu kodu. Man patīk šī pieeja, jo tas dod jums daudz elastības un kontroles. Ja jums ir gatavas domēna klases, es vienmēr dodu priekšroku šai pieejai, jo jūs varat viegli izveidot savu datu bāzi no domēna klasēm.

Šīs pieejas negatīvie aspekti ir tādi, ka visas pamatdatu bāzes shēmas izmaiņas tiktu zaudētas; šajā pieejā jūsu kods definē un izveido datu bāzi. Koda pirmā pieeja ļauj izmantot Entity Framework un definēt entītijas modeli, kas nesatur dizainera vai XML failus. Lai definētu modeli un ģenerētu datu bāzi, varat izmantot POCO (Plain Old CLR Objects) pieeju.

Šajā pieejā jūs parasti izveidojat entītiju klases. Lūk, piemērs; tipiska entītiju klase ir dota zemāk.

sabiedrības klases produkts

   {

public int ProductId {get; komplekts; }

publiskā virkne ProductName {get; komplekts; }

public float Cena {get; komplekts; }

   }

Pēc tam jums vajadzētu definēt pielāgotu datu kontekstu, paplašinot DbContext klasi, kā parādīts zemāk.

sabiedrības klases konteksts: DbContext

   {

publiskie DbSet produkti {get; komplekts; }

   }

Visbeidzot, konfigurācijas failā jānorāda savienojuma virkne. Tu esi pabeidzis!

Vispirms datu bāze

Ja datu bāze jau ir izveidota un ir gatava, varat izmantot pieeju Database First. Šajā pieejā entītijas datu modeli (EDM) izveido no pamatā esošās datu bāzes. Piemēram, vispirms izmantojat pieeju datu bāzei, kad no datu bāzes ģenerējat Visual Studio IDE esošos edmx failus. Manuālas izmaiņas datu bāzē ir viegli iespējamas, un jūs vienmēr varat atjaunināt EDM, ja nepieciešams (piemēram, ja mainās pamatā esošās datu bāzes shēma). Lai to izdarītu, vienkārši atjauniniet EDM no datu bāzes Visual Studio IDE.

Vispirms modelis

Izmantojot pieeju Model First, vispirms varat izveidot EDM, pēc tam no tā ģenerēt datu bāzi. Jūs parasti izveidojat tukšu EDM, izmantojot Entity Data Model Wizard Visual Studio, definējiet entītijas un to attiecības Visual Studio un pēc tam ģenerējiet datu bāzi no šī definētā modeļa. Visual Studio noformētājā varat viegli izveidot entītijas un definēt to attiecības un asociācijas. Izmantojot dizaineru, varat arī norādīt rekvizītu Key un rekvizītu datu tipus. Lai ieviestu papildu funkcijas savās entītijās, varat izmantot daļējas klases.

Labi, bet kad jums vajadzētu izmantot Model First pieeju? Ja ne domēna klases, ne datu bāze nav gatava, un jūs drīzāk definētu datu modeli, izmantojot vizuālo dizaineru, šī pieeja ir domāta jums. Tomēr, tāpat kā pieejas Code First gadījumā, arī Model First pieejā manuālās izmaiņas datubāzē tiktu zaudētas, jo modelis nosaka datu bāzi.

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