See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 37510|Vastuse: 1

[Allikas] Andmebaasi initsialiseerimise strateegia EF 6 Code-First süsteemis

[Kopeeri link]
Postitatud 17.04.2019 15:56:46 | | |
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:








Eelmine:Illustreeritud krüptograafia 3. väljaanne
Järgmine:Silicon Valley aprilli 2018 tööklassi video
 Üürileandja| Postitatud 07.02.2021 15:08:59 |
Luba Entity Frameworkil alustada, __MigrationHistory enam kehtiv tabel
https://www.itsvse.com/thread-3255-1-1.html

Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com