Mi a neve 3 adatbázis gyógy-, illetve kód első Entity Framework

Egy korábbi cikkben a sorozat, „Mi a neve” bebizonyosodott, hogy az általa képviselt DurandalJS és hogyan kell használni. Ebben a cikkben, fogunk dolgozni Entity Framework: egy adatbázis létrehozása alapján Code First; hozzon létre az egység osztályok be az SQL-kapcsolatot.

Az első lépések

Mielőtt elkezdené alkalmazni BreezeJS kell készítenie egy adatbázishoz. Ez az, amit mi csinálunk ebben a cikkben. De először, akkor van értelme, amely megmutatja adatbázis „figyelmen kívül” rám egy mappát „hasznos lehet”, így egyértelmű, hogy mi forog kockán.

adatbázis séma

Én már régóta „porosodik” adatbázis az értelmezés az elnevezések. Ez annyira egyszerű, hogy adok a rendszer:

Mi a neve 3 adatbázis gyógy-, illetve kód első Entity Framework

Az adatbázis van, de azt használjuk Nem fogom rendeltetési célját. Létrehozunk egy új adatbázist elve alapján „Code” Először, hogy van, akkor létrehozunk az osztályok és az adatbázis Entity Framework számunkra. Ezt követően, mentem én archív adatbázist az új adatbázisba, csak az adatokat.

Szeretném hangsúlyozni, hogy a fenti a kép adatbázis - csak csak illusztráció. Létrehozunk egy új adatbázist. És mert ez, csak másolja az adatokat, de nem a szerkezetét.

Hozzon létre egy adatbázist alapján „Code” Először

Először is, szükségünk osztályba, mert a „Kódex” nem jelent mást, mint a „kód”, ami azt jelenti, osztályok. Én már régóta jönnek a tény, hogy mindent meg kell a helyén, és ezúttal én nem tehetek másként. Régebben helyezze a modell osztályok külön projekt, a megoldás (megoldás).

Mi a neve 3 adatbázis gyógy-, illetve kód első Entity Framework

Hozzon létre egy új projektet:

Mi a neve 3 adatbázis gyógy-, illetve kód első Entity Framework

Modellek Code First

Most hozzunk létre az első osztályú nevű LetterInfo ... Nem, nézzük meg néhány elvét a PFSZ, és különösen az egyik alapvető - „Öröklés”. Hozzon létre egy osztályt, amely lesz az alapja a következő két. Az osztály neve ModelBase:

Megcsináltuk, mert mind a két következő osztályok: LetterInfo NameInfo és tartalmazzák az azonos tulajdonságokkal rendelkezik:

A class NameInfo hiányzik akár egyetlen tulajdonság (alapuló diagramja egy példakénti adatbázis), amely nincs jelen a kiindulási osztályban, add meg:

Itt és kész építészeti modell alkalmazása.

Tulajdonságok, osztályok, tulajdonságok, modellek

Inkább a kezdet, most kell alkalmazni számos attribútumok osztályok és tulajdonságok jelzésére Entity Framework egyes paraméterek generálása során az adatbázis táblákat. A kezdéshez az alap osztály:

Képesség Key jelzik Entity Framework, hogy ez a mező PrimaryKey (elsődleges kulcs) osztályok (táblázat) kell használni, mint egy alap osztály utódja.

Általánosságban elmondható, hogy szükség van, hogy a pontosítás. Valójában Entity Framework nagyon „okos” keretet. Ha nem állítja be a legfontosabb tulajdonság ez a tulajdonság, az Entity Framework is bejelöli ezt a mezőt, mint PrimaryKey. hogy az, hogy az elsődleges kulcs. Entity Framework Platform azon a tényen alapul, hogy minden egyes entitás alapvető érték, hogy használják a nyomkövető egységek. Az egyik megállapodások által hivatkozott Code First. Ez határozza meg, hogy egy kulcsfontosságú tulajdonság minden osztályban Code First. Ez a megállapodás keres Id tulajdon vagy tulajdoni, amely egyesíti a „neve” és az Id. például LetterId. Az ingatlan térképek az elsődleges kulcs oszlop az adatbázisban.

Esetünkben a tulajdonságot az egyes osztályok örökösök. Még mindig fel ezt az attribútumot, inkább megszokásból. A következő felsorolás jön Display attribútumot. Ez az attribútum nem annyira Entity Framework, mint a formák és az ASP.NET MVC az olvashatóság a jövőben. Jelölés használata Razor:

A formában jeleníti meg a az ingatlan értéke miatt DisplayAttribute attribútumot. Azt is tedd szinte mindig csak megszokásból, mert lehetséges, hogy meghatározza a Dűlőkeresztelőtől orosz, bár a mi alkalmazás, ez az attribútum használhatatlan, mert a renderelés formában nem termel Razor. és DurandalJS KnockoutJS jelent.

Az alábbi tulajdonság - „Név”. De a mi esetünkben ez a tulajdonság használ egy másik konfigurációs tulajdonságokat az egyes örökösöket. Például ez a tulajdonság egy nevet (DisplayAttribute) „levél” az osztályban LetterInfo, a NameInfo osztály - „Név”.

Hozzon létre egy metaadat osztály osztály örökösök és újra a metaadatok a szülő osztály bennük. Először foglalkozik LetterInfo osztály:

Kezdeni, nézd meg a 4. sorban, ahol az osztály meghatározása metaadatok LetterInfoMetadata. Felhívjuk figyelmét, hogy a neve a tulajdonságok, az azonos nevű funkciók a ModelBase alap osztály. Képesség megjeleníteni már leírtuk, a következő - Kötelező (10-es vonal). Ez a jellemző Entity Framework megjelölni az ingatlan, mint szükséges, hogy van egy bejegyzés a táblázatban nem fog esni, amíg az összes szükséges mezőt töltik. További StringLength attribútum (11 sor), amely határt szab a string hossza az SQL tábla. For Content tulajdonság létre saját attribútumokat.

A következő osztályba NameInfo:

Kitérő: lehet azzal érvelni, hogy miért ilyen komplexitást megalakult a szervezet. Nem tagadom, hogy ez nem a legegyszerűbb módja, hogy végre. Alternatív megoldásként, akkor sokkal könnyebb lenne, hogy két osztályba, és minden végre a saját tulajdonságait különböző attribútumokat. Abstracts támogatására végzett munka:

  • Az alapelveket és szabályokat OOP (objektumorientált programozás) egy jó hang minden programozó;
  • A további fejlesztési projekt változtatni az alapvető tulajdonságait lehet végezni központilag
  • Mindenesetre, a program megfelelően kell és ki jó szokásokat.

Egy másik típusú attribútumok, amelyek nem vonatkoznak a tulajdonságokat és osztályokat. Egyik képviselője ezeknek a tulajdonságoknak a TableAttribute attribútumot. Ezen attribútum egy osztály hatása, ez lehetővé teszi, hogy adjon meg egy nevet Entity Framework tábla ebben az osztályban.

Például az osztály LetterInfo I attribútum beállítására:

És ezért a táblázat, amely Entity Framework számomra, amelyben tárolni a nevét betűk lesz az úgynevezett „levelek”. helyett „LetterInfo”, ha én nem attribútum beállítására.

Nem ugyanaz a második egység:

Ezekkel attribútumok Entity Framework létre nekem két asztal a nevét betűk és nevek. Itt az ideje, hogy megismerje a Entity Framework közelebb.

DbContext és megszokás Entity Framework

Mi a neve 3 adatbázis gyógy-, illetve kód első Entity Framework

Az első lépés az, hogy telepíteni nuget-csomag, amely lehetővé teszi, hogy elkezd dolgozni Entity Framework. Válassza InfoNames.Data projekt jobb gombbal kezelése Nuget csomagok. A csomagkezelő, válassza ki a bal tároló „A Microsoft és NET”, Entity Framework-csomag lesz az első helyen (mert a frekvencia letöltések), ha ez nem az első helyen, írja Entity Framework keresve az oszlopot a megfelelő információkat.

Mi a neve 3 adatbázis gyógy-, illetve kód első Entity Framework

Knop Telepítés gombra.

A következő lépés az, hogy adjunk egy linket InfoNames.Models projekt. Válassza projekt ismét InfoNames.Data jobb menüt, és lapozzunk az Új -> Refferences:

Mi a neve 3 adatbázis gyógy-, illetve kód első Entity Framework

Megjegyzés DAW, és kattintson az OK gombra. Rendben van. Most minden készen áll az adatbázis megteremtése keretében erre, hozzon létre egy új osztályt a projektben ApplicationDbContext InfoNames.Data:

A kivitelező az alap osztály, adja meg a nevét, a kapcsolat string „DefaultConnection”. Most connection string az SQL szerver hozzá a web.config projekt InfoNames.Web.

Ügyeljen arra, hogy a választás „eredetileg Catalog”, azt jelzi, hogy a nevét, amelyek az adatbázis jön létre SQL szerver. alap „infonamesdb” jön létre az én esetemben. Most InfoNames.Web projekt szükséges összekapcsolni InfoNames.Data projekt:

Mi a neve 3 adatbázis gyógy-, illetve kód első Entity Framework

Válassza ki a projekt, megjegyezve, hogy csóka, és kattintson az OK gombra. Nos, menjünk tovább.

A csapat engedélyezése kivándorlás

Térjünk vissza a InfoNames.Data projekt. ez szükséges ahhoz, hogy a migráció (migráció). Migrációs adatbázis lehetővé teszi, hogy módosítsa az alkalmazás adatai felépítésére „automatikusan” hívásakor az Update-adatbázis parancsot. Más szóval, ha valami hiányzik, amikor kidolgozása során, például elfelejti bármelyik attribútum vagy kihagyott néhány tulajdonság, majd amikor azt felveszi a modellt kell végrehajtani egy parancsot Update Database frissíteni „jönnek”, hogy az SQL szerver. Entity Framework fog tenni a legtöbb munka az Ön számára, ha tartalmazza a migráció, különben teljesen le kell törölnünk az adatbázist, és ezáltal azt újra. És ha már van adat.

Megjegyzés: Nem minden parancsot, hogy módosítsa a adatbázissémát automatikusan alkalmazza a változtatásokat, néhány változtatást kell kezelni „kéz” írás csapat (migráció) személyesen. De legfőképpen, különösen az egyszerű szerkezet az adatbázis akkor mindent megtesz avtomigratsii.

A Package Manager konzol parancsot:

A projekt megjelent InfoNames.Data Migrations mappába konfigurációs fájl .cs

Migráció, mi összejöttünk, most nézzük meg őket, hogy működjön a „automatikus” az ingatlan, meg a 9. sorban az igazi és hozzá még egy:

Most minden be van állítva teljesen. Mehetsz a Package Manager konzol és a parancs futtatásához Update Database:

Hurrá! hiba nélkül. 3. sor mutatja, hogy nyilvánvaló a migráció nem található (amik meg vannak írva „kézzel”) és a 4. sorban frissítések találhatók az adatstruktúra (természetesen ez csak létre), és avtomigratsiya primenena.V 5 sor értesítést kap, hogy a lökés módszer Seed. Az eredmény a csapat egy új adatbázist a listán az SQL-szerver:

Mi a neve 3 adatbázis gyógy-, illetve kód első Entity Framework

Ha majd tekintse meg a tábla szerkezete:

Mi a neve 3 adatbázis gyógy-, illetve kód első Entity Framework

Mi azt akartuk, hogy ennek eredményeként a cikket. Következő exportálni az adatokat a régi adatbázisból az újat (akkor marad a „színfalak mögött”). A következő cikkben fogjuk kezdeni dolgozni BreezeJS.

következtetés

Összefoglalva azt szeretném emlékeztetni, hogy lehet kísérletezni, hogy letölti a jelenlegi változat a projekt GitHub.