Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 37510|Atsakyti: 1

[Šaltinis] Duomenų bazės inicijavimo strategija EF 6 Code-First

[Kopijuoti nuorodą]
Paskelbta 2019-04-17 15:56:46 | | |
Pirmą kartą paleidę programą "Code-First" jau sukūrėte duomenų bazę, bet kas tai yra paleidus antrą kartą? Ar kiekvieną kartą paleidus programą sukuriama nauja duomenų bazė? O kaip dėl gamybos aplinkos? Kaip pakeisti duomenų bazę, kai keičiu domeno modelį? Norėdami tvarkyti šiuos scenarijus, turite naudoti vieną iš duomenų bazės inicijavimo strategijų.

Yra keturios skirtingos duomenų bazės inicijavimo strategijos:

  • CreateDatabaseIfNotExists:Tai yraNumatytasisinicijavimo procedūra. Kaip rodo pavadinimas, jis sukurs duomenų bazę, jei jos nėra pagal konfigūraciją. Tačiau jei pakeisite modelio klasę ir paleisite programą naudodami šį iniciatorių, bus padaryta išimtis.
  • DropCreateDatabaseIfModelChanges: jei pasikeitė jūsų modelio klasė (objekto klasė), šis iniciatorius panaikins esamą duomenų bazę ir sukurs naują. Taigi jums nereikia jaudintis dėl duomenų bazės schemų tvarkymo, kai keičiasi modelių klasės.
  • DropCreateDatabaseAlways: Kaip rodo pavadinimas, šis iniciatorius panaikina esamą duomenų bazę kiekvieną kartą, kai paleidžiate programą, nepriklausomai nuo to, ar pasikeitė jūsų modelio klasė, ar ne. Tai naudinga, kai reikia naujos duomenų bazės kiekvieną kartą, kai paleidžiate programą, pavyzdžiui, kuriant programą.
  • Pasirinktinis duomenų bazės iniciatorius: Taip pat galite sukurti savo pasirinktinį iniciatorių, jei aukščiau pateikta informacija neatitinka jūsų reikalavimų arba jei norite naudoti aukščiau pateiktą iniciatorių kitų duomenų bazių inicijavimo procesui atlikti.

Norėdami naudoti vieną iš aukščiau pateiktų DB inicijavimo strategijų, turite nustatyti DB inicializatorių naudodami klasę duomenų bazės konteksto klasėje, kaip parodyta toliau:




Taip pat galite sukurti pasirinktinį duomenų bazės iniciatorių paveldėdami vieną iš iniciatorių, kaip parodyta toliau:




Aukščiau pateiktame pavyzdyje "SchoolDBInitializer" yra pasirinktinė inicializatoriaus klasė, gauta iš "CreateDatabaseIfNotExists". Tai atskiria duomenų bazės inicijavimo kodą nuo konteksto klasės.

Nustatykite DB iniciatorių konfigūracijos faile

Taip pat galite nustatyti db iniciatorių konfigūracijos faile. Pavyzdžiui, norėdami nustatyti numatytąjį pradinės vertės nustatymą app.config:




Pasirinktinį duomenų bazės iniciatorių galite nustatyti taip:




Uždaryti DB iniciatorių

Galite išjungti savo programos duomenų bazės iniciatorių.Darant prielaidą, kad nenorite prarasti esamų duomenų gamyboje, galite uždaryti iniciatorių, kaip nurodyta toliau:



Taip pat galite išjungti iniciatorių konfigūracijos faile, pvz.:








Ankstesnis:Iliustruota kriptografija 3 leidimas
Kitą:Silicio slėnis 2018 m. balandžio mėn.
 Savininkas| Paskelbta 2021-02-07 15:08:59 |
Leisti objektų sistemai paleisti nebegaliojančią __MigrationHistory lentelę
https://www.itsvse.com/thread-3255-1-1.html

Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com