Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 37510|Antwoord: 1

[Bron] Databaseinitialisatiestrategie in EF 6 Code-First

[Link kopiëren]
Geplaatst op 17-04-2019 15:56:46 | | |
Je hebt al een database aangemaakt nadat je de Code-First-applicatie voor het eerst hebt uitgevoerd, maar wat is het na het tweede starten? Wordt er elke keer dat de applicatie wordt uitgevoerd een nieuwe database aangemaakt? Hoe zit het met de productieomgeving? Hoe verander ik de database wanneer ik het domeinmodel verander? Om deze scenario's te behandelen, moet je een van de database-initialisatiebeleid gebruiken.

Er zijn vier verschillende strategieën voor database-initialisatie:

  • CreateDatabaseIfNotExists:Dit isverstekInitialisatieprocedure. Zoals de naam al aangeeft, zal het een database aanmaken als deze volgens de configuratie niet bestaat. Als je echter de modelklasse verandert en vervolgens de applicatie met deze initializer uitvoert, wordt er een uitzondering gegooid.
  • DropCreateDatabaseIfModelChanges: Als je modelklasse (entiteitsklasse) is veranderd, verwijdert deze initializer de bestaande database en maakt een nieuwe aan. Dus je hoeft je geen zorgen te maken over het onderhouden van databaseschema's wanneer modelklassen veranderen.
  • DropCreateDatabaseAlways: Zoals de naam al aangeeft, verwijdert deze initializer de bestaande database elke keer dat je je applicatie uitvoert, ongeacht of je modelklasse is veranderd of niet. Dit is handig wanneer je elke keer dat je een applicatie draait een nieuwe database nodig hebt, bijvoorbeeld bij het ontwikkelen van een applicatie.
  • Aangepaste database-initialiseerder: Je kunt ook je eigen aangepaste initializer maken als bovenstaande niet aan je eisen voldoet, of als je de bovenstaande initializer wilt gebruiken om het proces van het initialiseren van andere databases uit te voeren.

Om een van bovenstaande DB-initialisatiestrategieën te gebruiken, moet je de DB Initializer instellen met de klasse in de Database context-klasse, zoals hieronder weergegeven:




Je kunt ook een aangepaste database-initialisator maken door een van de initializers te erven, zoals hieronder weergegeven:




In het bovenstaande voorbeeld is de SchoolDBInitializer een aangepaste initialiseerklasser afgeleid van CreateDatabaseIfNotExists. Dit scheidt de database-initialisatiecode van de contextklasse.

Stel de DB Initializer in in het configuratiebestand

Je kunt ook de database-initializer instellen in het configuratiebestand. Bijvoorbeeld, om de standaard beginwaarde in app.config in te stellen:




Je kunt een aangepaste database-initializer als volgt instellen:




Sluit DB Initializer

Je kunt de database-initializer voor je applicatie uitschakelen.Als je bestaande data niet wilt verliezen tijdens productie, kun je de initializer sluiten, als volgt:



Je kunt de initializer ook uitschakelen in het configuratiebestand, bijvoorbeeld:








Vorig:Geïllustreerde Cryptografie 3e Editie
Volgend:Silicon Valley april 2018 werkklasvideo
 Huisbaas| Geplaatst op 07-02-2021 15:08:59 |
Laat Entity Framework starten niet langer geldig __MigrationHistory tabel
https://www.itsvse.com/thread-3255-1-1.html

Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com