Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 37510|Svar: 1

[Kilde] Databaseinitialiseringsstrategi i EF 6 Code-First

[Kopier link]
Opslået på 17/04/2019 15.56.46 | | |
Du har allerede oprettet en database efter at have kørt Code-First-applikationen første gang, men hvad er det efter anden start? Bliver der oprettet en ny database hver gang applikationen køres? Hvad med produktionsmiljøet? Hvordan ændrer jeg databasen, når jeg ændrer domænemodellen? For at håndtere disse scenarier skal du bruge en af databaseinitialiseringspolitikkerne.

Der findes fire forskellige strategier for databaseinitialisering:

  • CreateDatabaseIfNotExists:Det her erstandardInitialiseringsprocedure. Som navnet antyder, vil den oprette en database, hvis den ikke eksisterer ifølge konfigurationen. Men hvis du ændrer modelklassen og derefter kører applikationen med denne initializer, kastes en undtagelse.
  • DropCreateDatabaseIfModelChanges: Hvis din modelklasse (entitetsklasse) er ændret, vil denne initializer slette den eksisterende database og oprette en ny. Så du behøver ikke bekymre dig om at vedligeholde databaseskemaer, når modelklasser ændrer sig.
  • DropCreateDatabaseAlways: Som navnet antyder, sletter denne initializer den eksisterende database hver gang du kører din applikation, uanset om din modelklasse er ændret eller ej. Dette er nyttigt, når du har brug for en ny database hver gang, du kører en applikation, for eksempel når du udvikler en applikation.
  • Brugerdefineret databaseinitializer: Du kan også oprette din egen brugerdefinerede initializer, hvis ovenstående ikke opfylder dine krav, eller hvis du vil bruge ovenstående initializer til at initialisere andre databaser.

For at bruge en af ovenstående database-initialiseringsstrategier skal du sætte DB Initializer ved at bruge klassen i Database-kontekstklassen, som vist nedenfor:




Du kan også oprette en brugerdefineret databaseinitialisator ved at arve en af initializerne, som vist nedenfor:




I eksemplet ovenfor er SchoolDBInitializer en brugerdefineret initialiser-klasse, der stammer fra CreateDatabaseIfNotExists. Dette adskiller databaseinitialiseringskoden fra kontekstklassen.

Opsæt DB Initializer i konfigurationsfilen

Du kan også sætte database-initializeren i konfigurationsfilen. For eksempel for at sætte standardindstillingen for startværdien i app.config:




Du kan opsætte en brugerdefineret databaseinitialisator som følger:




Luk DB Initializer

Du kan slå databaseinitialisatoren fra for din applikation.Hvis du ikke vil miste eksisterende data i produktion, kan du lukke initializeren, som følger:



Du kan også slå initializeren fra i konfigurationsfilen, for eksempel:








Tidligere:Illustreret kryptografi 3. udgave
Næste:Silicon Valley april 2018 beskæftigelsesklassevideo
 Udlejer| Opslået på 07/02/2021 15.08.59 |
Tillad Entity Framework at starte er ikke længere gyldig __MigrationHistory tabel
https://www.itsvse.com/thread-3255-1-1.html

Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com