Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 37510|Antwort: 1

[Quelle] Datenbankinitialisierungsstrategie in EF 6 Code-First

[Link kopieren]
Veröffentlicht am 17.04.2019 15:56:46 | | |
Sie haben bereits eine Datenbank erstellt, nachdem Sie die Code-First-Anwendung zum ersten Mal ausgeführt haben, aber was ist das nach dem zweiten Start? Wird jedes Mal, wenn die Anwendung ausgeführt wird, eine neue Datenbank erstellt? Wie sieht es mit der Produktionsumgebung aus? Wie ändere ich die Datenbank, wenn ich das Domänenmodell ändere? Um diese Szenarien zu bewältigen, müssen Sie eine der Datenbankinitialisierungsrichtlinien verwenden.

Es gibt vier verschiedene Datenbankinitialisierungsstrategien:

  • CreateDatabaseIfNotExists:Das istVorgabeInitialisierungsprozedur. Wie der Name schon sagt, wird eine Datenbank erstellt, falls diese gemäß der Konfiguration nicht existiert. Wenn du jedoch die Modellklasse änderst und dann die Anwendung mit diesem Initialisierer ausführst, wird eine Ausnahme ausgelöst.
  • DropCreateDatabaseIfModelChanges: Wenn sich Ihre Modellklasse (Entitätsklasse) geändert hat, löscht dieser Initialisierer die bestehende Datenbank und erstellt eine neue. Du musst dir also keine Sorgen machen, Datenbankschemata zu pflegen, wenn sich Modellklassen ändern.
  • DropCreateDatabaseAlways: Wie der Name schon sagt, löscht dieser Initialisierer die bestehende Datenbank jedes Mal, wenn Sie Ihre Anwendung ausführen, unabhängig davon, ob sich Ihre Modellklasse geändert hat oder nicht. Das ist nützlich, wenn Sie bei jeder Ausführung einer Anwendung eine neue Datenbank benötigen, zum Beispiel bei der Entwicklung einer Anwendung.
  • Benutzerdefinierter Datenbankinitialisierer: Du kannst auch deinen eigenen benutzerdefinierten Initialisierer erstellen, wenn der oben genannte nicht deinen Anforderungen entspricht, oder wenn du den oben genannten Initialisierer verwenden möchtest, um den Prozess der Initialisierung anderer Datenbanken durchzuführen.

Um eine der oben genannten Datenbankinitialisierungsstrategien zu verwenden, müssen Sie den DB Initializer mit der Klasse in der Datenbank-Kontextklasse festlegen, wie unten gezeigt:




Sie können auch einen benutzerdefinierten Datenbankinitialisierer erstellen, indem Sie einen der Initialisierer erben, wie unten gezeigt:




Im obigen Beispiel ist der SchoolDBInitializer eine benutzerdefinierte Initialisierer-Klasse, die von CreateDatabaseIfNotExists abgeleitet ist. Dies trennt den Datenbankinitialisierungscode von der Kontextklasse.

Richte den DB-Initializer in der Konfigurationsdatei ein

Du kannst auch den Datenbank-Initialisierer in der Konfigurationsdatei einstellen. Zum Beispiel um die Standard-Anfangswerteinstellung in app.config festzulegen:




Sie können einen benutzerdefinierten Datenbankinitialisierer wie folgt einrichten:




DB-Initializer schließen

Du kannst den Datenbankinitialisierer für deine Anwendung deaktivieren.Vorausgesetzt, du möchtest keine vorhandenen Daten in der Produktion verlieren, kannst du den Initialisierer schließen, wie folgt:



Du kannst den Initialisierer auch in der Konfigurationsdatei ausschalten, zum Beispiel:








Vorhergehend:Illustrierte Kryptographie 3. Auflage
Nächster:Silicon Valley April 2018 Beschäftigungskursvideo
 Vermieter| Veröffentlicht am 07.02.2021 15:08:59 |
Entity Framework starten kann nicht mehr gültig __MigrationHistory Tabelle
https://www.itsvse.com/thread-3255-1-1.html

Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com