Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 37510|Odgovoriti: 1

[Vir] Strategija inicializacije baze podatkov v EF 6 Code-First

[Kopiraj povezavo]
Objavljeno na 17. 04. 2019 15:56:46 | | |
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:








Prejšnji:Ilustrirana kriptografija 3. izdaja
Naslednji:Silicijeva dolina april 2018 – video o zaposlitvenem razredu
 Najemodajalec| Objavljeno na 7. 02. 2021 15:08:59 |
Dovolite, da se Entity Framework zažene, ni več veljaven __MigrationHistory tabeli
https://www.itsvse.com/thread-3255-1-1.html

Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com