Bazo podatkov ste že ustvarili po prvem zagonu aplikacije Code-First, ampak kaj je po drugem zagonu? Ali se nova baza ustvari vsakič, ko se aplikacija zažene? Kaj pa produkcijsko okolje? Kako spremenim bazo podatkov, ko spremenim model domene? Za obvladovanje teh scenarijev morate uporabiti eno od politik inicializacije baze podatkov.
Obstajajo štiri različne strategije inicializacije baze podatkov:
- CreateDatabaseIfNotExists:To jePrivzetoPostopek inicializacije. Kot že ime pove, bo ustvaril bazo podatkov, če ne obstaja glede na konfiguracijo. Če pa spremenite razred modela in nato zaženete aplikacijo s tem inicializatorjem, se pojavi izjema.
- DropCreateDatabaseIfModelChanges: Če se je vaš razred modela (razred entitete) spremenil, bo ta inicializator izbrisal obstoječo bazo podatkov in ustvaril novo. Tako vam ni treba skrbeti za vzdrževanje shem baze podatkov, ko se modelni razredi spreminjajo.
- DropCreateDatabaseAlways: Kot že ime pove, ta inicializator izbriše obstoječo bazo podatkov vsakič, ko zaženete aplikacijo, ne glede na to, ali se je vaš razred modela spremenil ali ne. To je uporabno, kadar potrebujete novo bazo podatkov vsakič, ko zaženete aplikacijo, na primer pri razvoju aplikacije.
- Prilagojen inicializator baze podatkov: Lahko ustvarite tudi svoj lasten inicializator, če zgoraj navedeno ne ustreza vašim zahtevam ali če želite uporabiti zgornji inicializator za izvedbo postopka inicializacije drugih baz podatkov.
Za uporabo ene od zgornjih strategij inicializacije baze morate nastaviti inicializator baze z uporabo razreda v kontekstnem razredu baze podatkov, kot je prikazano spodaj:
Lahko ustvarite tudi prilagojen inicializator baze podatkov tako, da podedujete enega od inicializatorjev, kot je prikazano spodaj:
V zgornjem primeru je SchoolDBInitializer prilagojen razred inicializatorja, izpeljan iz CreateDatabaseIfNotExists. To loči inicializacijsko kodo baze podatkov od kontekstnega razreda.
Nastavite inicializator baze podatkov v konfiguracijski datoteki
Lahko tudi nastaviš inicializator baze v konfiguracijski datoteki. Na primer, za nastavitev privzete začetne vrednosti v app.config:
Lahko nastavite prilagojen inicializator baze podatkov na naslednji način:
Zapri inicializator baze podatkov
Lahko izklopite inicializator baze podatkov za svojo aplikacijo.Če ne želite izgubiti obstoječih podatkov v produkciji, lahko zaprete inicializator, kot sledi:
Inicializator lahko tudi izklopite v konfiguracijski datoteki, na primer:
|