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.:
|