Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 37510|Svar: 1

[Källa] Databasinitieringsstrategi i EF 6 Code-First

[Kopiera länk]
Publicerad på 2019-04-17 15:56:46 | | |
Du har redan skapat en databas efter att ha kört Code-First-applikationen första gången, men vad är det efter att du startat andra gången? Skapas en ny databas varje gång applikationen körs? Hur är det med produktionsmiljön? Hur ändrar jag databasen när jag ändrar domänmodellen? För att hantera dessa scenarier måste du använda en av databasens initialiseringspolicys.

Det finns fyra olika strategier för databasinitiering:

  • SkapaDatabasIfNotExisterar:Det här ärstandardInitieringsprocedur. Som namnet antyder kommer den att skapa en databas om den inte existerar enligt konfigurationen. Men om du ändrar modellklassen och sedan kör applikationen med denna initialiserare, kastas ett undantag.
  • DropCreateDatabaseIfModelChanges: Om din modellklass (entitetsklass) har ändrats, kommer denna initierare att radera den befintliga databasen och skapa en ny. Så du behöver inte oroa dig för att underhålla databasscheman när modellklasser ändras.
  • DropCreateDatabaseAlways: Som namnet antyder raderar denna initialiserare den befintliga databasen varje gång du kör din applikation, oavsett om din modellklass har ändrats eller inte. Detta är användbart när du behöver en ny databas varje gång du kör en applikation, till exempel när du utvecklar en applikation.
  • Anpassad databasinitialisator: Du kan också skapa din egen anpassade initierare om ovanstående inte uppfyller dina krav, eller om du vill använda ovanstående initierare för att initiera andra databaser.

För att använda någon av ovanstående databasinitialiseringsstrategier måste du ställa in DB Initializer med klassen i databasens kontextklass, som visas nedan:




Du kan också skapa en anpassad databasinitierare genom att ärva en av initialiserarna, som visas nedan:




I exemplet ovan är SchoolDBInitializer en anpassad initialiserarklass härledd från CreateDatabaseIfNotExists. Detta separerar databasens initialiseringskod från kontextklassen.

Ställ in DB-initialiseraren i konfigurationsfilen

Du kan också ställa in databasinitialiseraren i konfigurationsfilen. Till exempel, för att sätta standardinställningen för initialvärdet i app.config:




Du kan ställa in en anpassad databasinitialiserare enligt följande:




Stäng DB-initialiseraren

Du kan stänga av databasinitialiseraren för din applikation.Om du inte vill förlora befintlig data i produktion kan du stänga initializern, enligt följande:



Du kan också stänga av initialiseraren i konfigurationsfilen, till exempel:








Föregående:Illustrerad kryptografi 3:e upplagan
Nästa:Silicon Valley april 2018 anställningsklassvideo
 Hyresvärd| Publicerad på 2021-02-07 15:08:59 |
Tillåt Entity Framework att starta är inte längre giltigt __MigrationHistory tabellen
https://www.itsvse.com/thread-3255-1-1.html

Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com