Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 37510|Odpoveď: 1

[Zdroj] Stratégia inicializácie databázy v EF 6 Code-First

[Kopírovať odkaz]
Zverejnené 17. 4. 2019 15:56:46 | | |
Databázu ste už vytvorili po prvom spustení aplikácie Code-First, ale čo je to po druhom spustení? Vytvára sa nová databáza zakaždým, keď sa spustí aplikácia? A čo produkčné prostredie? Ako zmením databázu, keď zmením doménový model? Na zvládnutie týchto scenárov musíte použiť jednu z inicializačných politík databázy.

Existujú štyri rôzne stratégie inicializácie databázy:

  • CreateDatabaseIfNotExists:Toto jepredvolenýInicializačný postup. Ako názov napovedá, vytvorí databázu, ak neexistuje, podľa konfigurácie. Ak však zmeníte triedu modelu a potom spustíte aplikáciu s týmto inicializérom, vyhodí sa výnimka.
  • DropCreateDatabaseIfModelChanges: Ak sa vaša trieda modelu (trieda entity) zmenila, tento inicializátor vymaže existujúcu databázu a vytvorí novú. Takže sa nemusíte starať o udržiavanie databázových schém, keď sa menia triedy modelov.
  • DropCreateDatabaseAlways: Ako názov napovedá, tento inicializátor maže existujúcu databázu zakaždým, keď spustíte aplikáciu, bez ohľadu na to, či sa trieda modelu zmenila alebo nie. To je užitočné, keď potrebujete novú databázu zakaždým, keď spúšťate aplikáciu, napríklad pri vývoji aplikácie.
  • Vlastný inicializátor databázy: Môžete si tiež vytvoriť vlastný inicializátor, ak vyššie uvedené požiadavky nespĺňa vaše požiadavky, alebo ak chcete použiť vyššie uvedený inicializátor na inicializáciu iných databáz.

Ak chcete použiť niektorú z vyššie uvedených stratégií inicializácie databázy, musíte nastaviť inicializátor databázy pomocou triedy v kontextovej triede databázy, ako je uvedené nižšie:




Môžete tiež vytvoriť vlastný databázový inicializátor dedičstvom jedného z inicializátorov, ako je uvedené nižšie:




V uvedenom príklade je SchoolDBInitializer vlastná trieda inicializátora odvodená z CreateDatabaseIfNotExists. Tým sa oddeľuje inicializačný kód databázy od kontextovej triedy.

Nastavte DB Initializer v konfiguračnom súbore

Môžeš tiež nastaviť inicializér databázy v konfiguračnom súbore. Napríklad nastavenie predvolenej počiatočnej hodnoty v app.config:




Môžete si nastaviť vlastný inicializátor databázy nasledovne:




Uzavrie inicializátor databázy

Môžeš vypnúť inicializér databázy pre svoju aplikáciu.Ak nechcete prísť o existujúce dáta v produkcii, môžete inicializér zatvoriť, nasledovne:



Môžeš tiež vypnúť inicializér v konfiguračnom súbore, napríklad:








Predchádzajúci:Ilustrovaná kryptografia 3. vydanie
Budúci:Silicon Valley aprílové video z pracovnej triedy 2018
 Prenajímateľ| Zverejnené 7. 2. 2021 15:08:59 |
Umožniť Entity Framework, aby začal, už nie je platný __MigrationHistory tabuľke
https://www.itsvse.com/thread-3255-1-1.html

Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com