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