Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 37510|Svare: 1

[Kilde] Databaseinitialiseringsstrategi i EF 6 Code-First

[Kopier lenke]
Publisert på 17.04.2019 15:56:46 | | |
Du har allerede opprettet en database etter å ha kjørt Code-First-applikasjonen for første gang, men hva er det etter å ha startet andre gang? Opprettes en ny database hver gang applikasjonen kjøres? Hva med produksjonsmiljøet? Hvordan endrer jeg databasen når jeg endrer domenemodellen? For å håndtere disse scenarioene må du bruke en av databaseinitialiseringspolicyene.

Det finnes fire forskjellige strategier for databaseinitialisering:

  • CreateDatabaseIfNotExists:Dette erstandardInitialiseringsprosedyre. Som navnet antyder, vil den opprette en database hvis den ikke eksisterer i henhold til konfigurasjonen. Men hvis du endrer modellklassen og deretter kjører applikasjonen med denne initialisatoren, kastes et unntak.
  • DropCreateDatabaseIfModelChanges: Hvis modellklassen din (entitetsklassen) har endret seg, vil denne initialisatoren slette den eksisterende databasen og opprette en ny. Så du slipper å bekymre deg for å vedlikeholde databaseskjemaer når modellklasser endres.
  • DropCreateDatabaseAlways: Som navnet antyder, sletter denne initialisatoren den eksisterende databasen hver gang du kjører applikasjonen, uavhengig av om modellklassen din har endret seg eller ikke. Dette er nyttig når du trenger en ny database hver gang du kjører en applikasjon, for eksempel når du utvikler en applikasjon.
  • Egendefinert databaseinitialisator: Du kan også lage din egen egendefinerte initialisator hvis ovenstående ikke oppfyller kravene dine, eller hvis du vil bruke initialisatoren ovenfor til å initialisere andre databaser.

For å bruke en av de ovennevnte DB-initialiseringsstrategiene må du sette DB Initializer ved å bruke klassen i Database-kontekstklassen, som vist nedenfor:




Du kan også lage en egendefinert databaseinitialisator ved å arve en av initialisatorene, som vist nedenfor:




I eksempelet ovenfor er SchoolDBInitializer en egendefinert initialiseringsklasse avledet fra CreateDatabaseIfNotExists. Dette skiller databaseinitialiseringskoden fra kontekstklassen.

Sett opp DB Initializer i konfigurasjonsfilen

Du kan også sette databaseinitialisatoren i konfigurasjonsfilen. For eksempel, for å sette standard startverdiinnstilling i app.config:




Du kan sette opp en egendefinert databaseinitialisator som følger:




Lukk DB-initialisator

Du kan slå av databaseinitialisatoren for applikasjonen din.Forutsatt at du ikke vil miste eksisterende data i produksjon, kan du lukke initializeren, som følger:



Du kan også slå av initialisatoren i konfigurasjonsfilen, for eksempel:








Foregående:Illustrert kryptografi 3. utgave
Neste:Silicon Valley april 2018 arbeidsklassevideo
 Vert| Publisert på 07.02.2021 15:08:59 |
La Entity Framework starte ikke lenger gyldig __MigrationHistory tabell
https://www.itsvse.com/thread-3255-1-1.html

Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com