Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 37510|Odpověď: 1

[Zdroj] Strategie inicializace databáze v EF 6 Code-First

[Kopírovat odkaz]
Zveřejněno 17.04.2019 15:56:46 | | |
Databázi jste už vytvořili po prvním spuštění aplikace Code-First, ale co je to po druhém spuštění? Vytváří se nová databáze pokaždé, když se aplikace spustí? A co produkční prostředí? Jak mohu změnit databázi, když změním doménový model? Pro řešení těchto scénářů musíte použít jednu z inicializačních politik databáze.

Existují čtyři různé strategie inicializace databáze:

  • CreateDatabaseIfNotExists:Toto jevýchozíInicializační postup. Jak název napovídá, vytvoří databázi, pokud neexistuje, podle konfigurace. Pokud však změníte třídu modelu a pak spustíte aplikaci s tímto inicializérem, vyhodí se výjimka.
  • DropCreateDatabaseIfModelChanges: Pokud se vaše třída modelu (třída entity) změnila, tento inicializátor smaže stávající databázi a vytvoří novou. Takže se nemusíte starat o údržbu databázových schémat, když se třídy modelů mění.
  • DropCreateDatabaseAlways: Jak název napovídá, tento inicializátor maže existující databázi pokaždé, když spustíte svou aplikaci, bez ohledu na to, zda se třída modelu změnila či nikoliv. To je užitečné, když potřebujete novou databázi pokaždé, když spusťujete aplikaci, například při vývoji aplikace.
  • Vlastní inicializátor databáze: Můžete si také vytvořit vlastní inicializátor, pokud výše uvedené nesplňuje vaše požadavky, nebo pokud chcete použít výše uvedený inicializér k inicializaci jiných databází.

Pro použití jedné z výše uvedených strategií inicializace databáze musíte nastavit inicializér databáze pomocí třídy v kontextové třídě databáze, jak je uvedeno níže:




Můžete také vytvořit vlastní inicializátor databáze dědičstvím jednoho z inicializérů, jak je uvedeno níže:




V uvedeném příkladu je SchoolDBInitializer vlastní třída inicializátoru odvozená z CreateDatabaseIfNotExists. Tím se odděluje inicializační kód databáze od kontextové třídy.

Nastavte DB Initializer v konfiguračním souboru

Inicializér databáze můžete také nastavit v konfiguračním souboru. Například pro nastavení výchozí hodnoty v app.config:




Můžete si nastavit vlastní inicializátor databáze následovně:




Zavřít inicializátor databáze

Můžete vypnout inicializátor databáze pro vaši aplikaci.Pokud nechcete přijít o existující data v produkci, můžete inicializér zavřít, a to následovně:



Inicializér můžete také vypnout v konfiguračním souboru, například:








Předchozí:Ilustrovaná kryptografie 3. vydání
Další:Video z kurzu zaměstnanosti v Silicon Valley duben 2018
 Pronajímatel| Zveřejněno 07.02.2021 15:08:59 |
Dovolit, aby Entity Framework začal neplatit __MigrationHistory tabulce
https://www.itsvse.com/thread-3255-1-1.html

Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com