2017-05-15 5 views
0

Mein Projekt arbeitet gegen eine vorhandene DB ein Standard-Dbo-Schema, und ich habe ein separates Schema für ein neues Modul erstellt, das ich erstelle. Ich habe zuerst einen Code erstellt und einige Objekte aus der vorhandenen Datenbank in meinem neuen Code-ersten Domänenmodell generiert. Ich habe eine leere erste Migration erstellt und die DB aktualisiert. Jetzt habe ich eine neue Tabelle für mein neues Schema mit Hilfe der folgenden Zeile erstellt:Sollte ich für jedes SQL-Schema verschiedene Migrationstabellen verwenden?

modelBuilder.Entity<newTblClass>().ToTable("newTblClass", "newSchema"); 

Und dann habe ich eine neue Migration und die DB aktualisiert. In meiner Datenbank habe ich festgestellt, dass meine Migrationen in der Tabelle dbo .__ MigrationHistory erstellt wurden. Ist das der richtige Weg? oder sollte ich für jedes Schema eine separate Migrationstabelle verwenden? und wenn ja wie?

+0

EF Speicherverwaltungsprotokoll auf dieser Tabelle. Es ist gut, alle Migrationsdaten in einer Tabelle zu haben. Verlassen wie es ist. –

+0

Wenn Sie eine separate Migration pro Schema wünschen, müssen Sie für jeden einen Kontext erstellen. Wenn Sie __MigrationHistory in ein anderes Schema verschieben möchten, gibt es eine [Technik] (http://stackoverflow.com/questions/28355352/ef-6-code-first-migrationhistory-in-dbo-schema-by-default) auch dafür. –

Antwort

0

Eigentlich gibt es zwei-Wege-Migration. Der erste Weg besteht darin, für jedes Schema, das sich ändert, neue hinzuzufügen. Der zweite Weg ist die automatische Migration.

Wenn Sie jede Änderung zurückgeben möchten, können Sie zuerst verwenden.

Wenn Sie Ihr Schema ändern, sollten Sie das tun. enter image description here

Anzeige der Erinnerung Wir schreiben Enable-Migrations enter image description here

danach, FirtsMigration und andere Migrations hinzuzufügen, die NugetPackage Console Wir schreiben Add-Migration FirstMigration

enter image description here

Auf diese Weise wird unsere Migrationsordner- und Konfigurationsklasse spontan erstellt.

Verwandte Themen