[FIXED] Wann wird die Saatgutmethode in einem EF -Code -Migrationsszenario aufgerufen?

Ausgabe

Ich bin neu in einem Projekt und es gibt diese Klasse für die Seed-Daten:

 internal sealed class Configuration : DbMigrationsConfiguration<DAL.Context>
    {
        public Configuration()
        {
            AutomaticMigrationsEnabled = true;
        }

Und dieser Code, um den Seed zu starten:

protected override void Seed(Context context)
    {
        try
        {

Meine Frage ist: wann wird die SeedMethode aufgerufen? Nur wenn ein Benutzer update-databasedie Datenbank hat und der Benutzer nicht hat (im Grunde ein neuer Benutzer), oder auch wenn der Benutzer mit einer vorhandenen Datenbank eine update-database?

Lösung

Die Seed-Methode wird verwendet, um einige bekannte statische Daten wie Länder, Staaten mit der anfänglichen Datenbank zuerst im Code zu haben. Die Seed-Methode wird diese Daten jedes Mal ausführen und füllen, wenn die Datenbank neu erstellt wird.

Ein weiterer Anwendungsfall ist die Verwendung während der Entwicklungs-/Testphase, in der Sie häufig die Datenbank neu erstellen und Datenbanktabellen mit Beispieldaten füllen müssen.

In einem anderen Szenario, wenn diese statischen Daten hinzugefügt werden müssen, ohne die Datenbank zu löschen (weil sie echte Daten enthält), wird die Seed-Methode für Migrationen verwendet. Immer wenn Sie die Migration ausführen und die Datenbank aktualisieren, wird die Seed-Methode ausgeführt. Hier muss mit der Seed-Methode mit langer Laufzeit vorsichtig sein, da sie bei jedem Start der Anwendung ausgeführt wird.

Weitere Erläuterungen finden Sie in den Datenbankinitialisierer- und Migrations-Seed-Methoden .


Beantwortet von –
Mukesh Modhvadiya


Antwort geprüft von –
David Goodson (FixError Volunteer)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like