Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 37510|Válasz: 1

[Forrás] Adatbázis inicializációs stratégia az EF 6 Code-First programban

[Linket másol]
Közzétéve 2019. 04. 17. 15:56:46 | | |
Már létrehoztál egy adatbázist az első futtatás után, de mi az, ha a második alkalommal elindítottad? Minden alkalommal új adatbázis keletkezik, amikor az alkalmazás fut? Mi a helyzet a produkciós környezettel? Hogyan változtathatom meg az adatbázist, amikor megváltoztatom a domain modellt? Ezeknek a helyzeteknek a kezelésére az adatbázis inicializációs szabályzatai közül valamelyik eszközt kell használni.

Négy különböző adatbázis-inicializációs stratégia létezik:

  • CreateDatabaseIfNotExists:Ez azalapértelmezettInicializációs eljárás. Ahogy a neve is mutatja, ha a konfiguráció szerint nem létezik, akkor is létrehoz egy adatbázist. Azonban, ha megváltoztatod a modellosztályt, majd futtatod az alkalmazást ezzel az inicializálóval, kivétel jelenik meg.
  • DropCreateDatabaseIfModelChanges: Ha a modellosztály (entitásosztály) megváltozott, ez az inicializáló törli a meglévő adatbázist, és létrehoz egy újat. Így nem kell aggódnod az adatbázis sémák karbantartása miatt, amikor a modellosztályok változnak.
  • DropCreateDatabaseAlways: Ahogy a neve is mutatja, ez az inicializáló minden alkalommal törli a meglévő adatbázist, amikor futtatod az alkalmazást, függetlenül attól, hogy a modellosztály megváltozott-e vagy sem. Ez akkor hasznos, ha minden alkalmazás futtatásakor új adatbázisra van szükséged, például alkalmazás fejlesztésekor.
  • Egyedi adatbázis inicializátor: Létrehozhatsz saját egyedi inicializátorodat is, ha a fentiek nem felelnek meg az igényeidnek, vagy ha a fenti inicializátort szeretnéd használni más adatbázisok inicializálásának folyamatához.

Az egyik fenti adatbázis inicializációs stratégia alkalmazásához be kell állítani a DB Initializert az Database kontextusosztály osztályának megfelelő osztály segítségével, ahogy az alábbiakban látható:




Egyedi adatbázis-inicializátort is létrehozhatsz az egyik inicializáló öröklése alapján, ahogy az alábbiakban látható:




A fenti példában a SchoolDBInitializer egy egyedi inicializáló osztály, amely a CreateDatabaseIfNotExists programból származik. Ez elválasztja az adatbázis inicializációs kódját a kontextus osztálytól.

Állítsd be a DB Initializert a konfigurációs fájlban

A db inicializátort a konfigurációs fájlban is beállíthatod. Például, hogy beállítsuk az alapértelmezett kezdeti érték beállítást az app.config fájlban:




Az alábbiak szerint állíthat be egyedi adatbázis-inicializátort:




Zárd be a DB inicializátort

Kikapcsolhatod az adatbázis inicializátort az alkalmazásodban.Feltételezve, hogy nem akarod elveszíteni a meglévő adatokat a gyártás során, bezárhatod az inicializálót, a következőként:



A konfigurációs fájlban is kikapcsolhatod az inicializátort, például:








Előző:Illusztrált kriptográfia 3. kiadás
Következő:Szilícium-völgy, 2018 áprilisi foglalkoztatási osztály videó
 Háziúr| Közzétéve 2021. 02. 07. 15:08:59 |
Engedélyezd az Entity Framework indulását, amely már nem érvényes __MigrationHistory tábla
https://www.itsvse.com/thread-3255-1-1.html

Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com