Ohjelmointi

Tutustu entiteettikehyksen mallien kokonaisuuksien erilaisiin lähestymistapoihin

Entity Framework yksinkertaistaa sovelluksen tietojen käyttöä antamalla sinun kirjoittaa koodia CRUD (Luo, Lue, Päivitä ja Poista) -toimintojen suorittamiseksi. Tämä tarkoittaa tarvetta olla vuorovaikutuksessa suoraan taustalla olevan tietokantapalvelun kanssa. Entiteettikehyksessä on kolme lähestymistapaa entiteettiesi mallintamiseen: Code First, Model First ja Database First. Tässä artikkelissa käsitellään kaikkia näitä kolmea lähestymistapaa sekä niiden etuja ja haittoja.

Mikä on entiteettikehys? Miksi kaikki hype?

Microsoftin Entity Framework on laajennettu ORM, jonka avulla voit eristää sovelluksesi objektimallin datamallista. Se on avoimen lähdekoodin ORM-kehys ADO.Netille ja se sisältyy osana .Net Frameworkiin. ORM-työkalujen avulla voit keskittyä sovelluksen liiketoimintalogiikkaan ja tallentaa tietoja tietokantaan paljon vähemmän koodilla. Voit hyödyntää ORM: ää muuntamalla tietoja yhteensopimattomien tyyppisten järjestelmien välillä - voit tallentaa toimialueesi objektit taustalla olevaan tietokantaan ilman, että sinun on huolehdittava sisäisistä monimutkaisuuksista tietojen todellisessa tallennuksessa. Entity Framework on Microsoftin kehittämä ORM, jota voidaan käyttää monenlaisten tietokantojen kanssa.

Seuraavissa osioissa tutkitaan kaikkia kolmea lähestymistapaa entiteettikehystä käyttävien entiteettien mallintamiseen.

Koodi ensin

Code First -lähestymistapa auttaa sinua luomaan sovelluksessasi entiteettejä keskittymällä toimialueen vaatimuksiin. Pohjimmiltaan voit seurata toimialueohjattua suunnittelua (DDD) käyttämällä tätä lähestymistapaa. Kun entiteettisi on määritelty ja määritykset määritetty, voit luoda tietokannan lennossa molemmilla. Code First -lähestymistapa antaa sinulle paremman hallinnan koodissasi - sinun ei tarvitse enää työskennellä automaattisesti tuotetun koodin kanssa. Pidän tästä lähestymistavasta, koska se antaa sinulle paljon joustavuutta ja hallintaa. Jos sinulla on verkkotunnusluokat valmiina, suosittelen aina tätä lähestymistapaa, koska voit helposti luoda tietokannan verkkotunnusluokista.

Tämän lähestymistavan haittapuoli on, että kaikki muutokset taustalla olevaan tietokantamalliin menetetään; tässä lähestymistavassa koodisi määrittelee ja luo tietokannan. Code First -lähestymistavan avulla voit käyttää Entity Framework -sovellusta ja määritellä entiteettimalli ilman suunnittelija- tai XML-tiedostoja. Voit käyttää mallia ja luoda tietokannan POCO (Plain Old CLR Objects) -menetelmällä.

Tässä lähestymistavassa luodaan tyypillisesti entiteettiluokkia. Tässä on esimerkki; tyypillinen kokonaisuusluokka on annettu alla.

julkisen luokan tuote

   {

public int ProductId {get; aseta; }

julkinen merkkijono ProductName {get; aseta; }

julkinen kelluva Hinta {get; aseta; }

   }

Seuraavaksi sinun on määritettävä mukautettu tietokonteksti laajentamalla DbContext-luokkaa alla esitetyllä tavalla.

julkisen luokan konteksti: DbContext

   {

julkiset DbSet-tuotteet {get; aseta; }

   }

Lopuksi sinun on määritettävä yhteysmerkkijono asetustiedostossa. Olet valmis!

Tietokanta ensin

Voit käyttää Database First -lähestymistapaa, jos tietokanta on jo suunniteltu ja valmis. Tässä lähestymistavassa Entity Data Model (EDM) luodaan taustalla olevasta tietokannasta. Käytät esimerkiksi tietokannan ensimmäistä lähestymistapaa, kun luot edmx-tiedostot Visual Studio IDE: ssä tietokannasta. Manuaaliset muutokset tietokantaan ovat mahdollisia helposti, ja voit aina päivittää EDM: n tarvittaessa (esimerkiksi jos taustalla olevan tietokannan malli muuttuu). Voit tehdä tämän yksinkertaisesti päivittämällä EDM Visual Studio IDE: n tietokannasta.

Malli ensin

Model First -lähestymistavassa voit luoda ensin EDM: n ja sitten luoda siitä tietokannan. Luot yleensä tyhjän EDM: n käyttämällä Visual Studion ohjattua Entity Data Model Wizard -toimintoa, määritellä entiteetit ja niiden suhteet Visual Studiossa ja luoda sitten tietokanta tästä määritetystä mallista. Voit helposti luoda entiteettejä ja määritellä niiden suhteet ja assosiaatiot Visual Studion suunnittelijassa. Voit myös määrittää avainominaisuuden ja entiteettiesi ominaisuuksien tietotyypit suunnittelijan avulla. Voit käyttää osaluokkia lisäominaisuuksien toteuttamiseen entiteeteissä.

OK, mutta milloin sinun tulisi käyttää Model First -lähestymistapaa? No, jos toimialueluokat tai tietokanta eivät ole valmiita ja haluat mieluummin määrittää tietomallin visuaalisen suunnittelijan avulla, tämä lähestymistapa on sinulle. Kuitenkin, kuten Code First -lähestymistavassa, Model First -menetelmässä menetetään manuaaliset muutokset tietokantaan, kun malli määrittelee tietokannan.

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