Oled juba loonud andmebaasi pärast Code-First rakenduse esimest käivitamist, aga mis see on pärast teist korda käivitamist? Kas iga kord, kui rakendust käivitatakse, luuakse uus andmebaas? Kuidas on lood tootmiskeskkonnaga? Kuidas ma saan andmebaasi muuta, kui muudan domeeni mudelit? Nende olukordade lahendamiseks tuleb kasutada üht andmebaasi initsialiseerimise poliitikat.
On neli erinevat andmebaasi initsialiseerimise strateegiat:
- CreateDatabaseIfNotExists:See onVaikimisiInitsialiseerimise protseduur. Nagu nimigi ütleb, loob see andmebaasi, kui seda konfiguratsiooni järgi ei eksisteeri. Kui aga muudate mudeliklassi ja käivitate rakenduse selle initsialisaatoriga, tekib erand.
- DropCreateDatabaseIfModelChanges: Kui sinu mudeliklass (entity class) on muutunud, kustutab see inisialisaja olemasoleva andmebaasi ja loob uue. Seega ei pea sa muretsema andmebaasi skeemide haldamise pärast, kui mudeliklassid muutuvad.
- DropCreateDatabaseAlways: Nagu nimigi ütleb, kustutab see initsialiseerija olemasoleva andmebaasi iga kord, kui rakendust käivitad, sõltumata sellest, kas mudeliklass on muutunud või mitte. See on kasulik, kui vajad uut andmebaasi iga kord, kui käivitad rakenduse, näiteks rakenduse arendamisel.
- Kohandatud andmebaasi initsialiseerija: Võite luua ka oma kohandatud initsialiseerija, kui ülaltoodud ei vasta teie nõuetele või kui soovite kasutada ülaltoodud initsialiseerijat teiste andmebaaside initsialiseerimise protsessi läbiviimiseks.
Ühe ülaltoodud andmebaasi initsialiseerimise strateegia kasutamiseks peate seadistama andmebaasi initsialiseerija andmebaasi kontekstiklassi klassi abil, nagu allpool näidatud:
Samuti saate luua kohandatud andmebaasi initsialiseerija, pärides ühe initsialisaatoritest, nagu allpool näidatud:
Ülaltoodud näites on SchoolDBInitializer kohandatud initsialiseerija klass, mis on tuletatud CreateDatabaseIfNotExists-ist. See eraldab andmebaasi initsialiseerimise koodi kontekstiklassist.
Seadista DB Initializer konfiguratsioonifailis
Sa saad seadistada ka andmebaasi initsialisaatori konfiguratsioonifailis. Näiteks app.config vaikimisi algväärtuse seadistuse määramiseks:
Saad seadistada kohandatud andmebaasi initsialiseerija järgmiselt:
Sulge andmebaasi inisialiseerija
Sa võid oma rakenduse jaoks andmebaasi initsialiseerija välja lülitada.Eeldades, et sa ei taha tootmises olemasolevaid andmeid kaotada, saad initsialiseri sulgeda, järgmiselt:
Saad ka inisialisaatori konfiguratsioonifailis välja lülitada, näiteks:
|