Beim Versuch, EF Migrations in meinem Projekt zu implementieren, stehe ich an einer Stelle fest.EF-Code zuerst MigrateDatabaseToLatestVersion akzeptiert Verbindungszeichenfolge Name aus der Konfiguration
EF-Code zuerst MigrateDatabaseToLatestVersion akzeptiert Verbindungszeichenfolge Name von config.
In meinem Fall Datenbankname bekannt zur Laufzeit (Benutzer wählt es aus Dropdown). Genau so, wie DbContext entweder akzeptiert, oder Connectionconnection Namen in seinem Konstruktor „MigrateDatabaseToLatestVersion“ akzeptiert nicht die gleichen
System.Data.Entity.Database.SetInitializer (new MigrateDatabaseToLatestVersion<SrcDbContext, SRC.DomainModel.ORMapping.Migrations.Configuration>(connString));
Gibt es eine andere Möglichkeit, dies zu erreichen?
können Sie Dynamic ConnectionStringName während der Instantiierung in den Kontext übergeben. Sie übergeben den Kontext an den Initialisierer. Warum die Notwendigkeit, hier vorbei zu gehen? SrcDBConText sollte mit Connection wie like erstellt werden. Database.SetInitializer (neue MigrateDatabaseToLatestVersion()); sollte genug sein –
-Danke. Ich habe das auch versucht. Es erstellt db mit dem Namen {0}, der sich in meiner Konfigurationsdatei befindet. Ich möchte MigrateDatabaseToLatestVersion und nicht Plain Old Initializer verwenden, wo ich zwei Kopien der Initialisierung (eine für die Migration, eine andere für die neue DB-Erstellung) beibehalten muss. Ich erstelle einzigartige Einschränkungen bei der Migration. –
DbContext kann eine Verbindungszeichenfolge oder einen Verbindungsnamen übergeben werden. Ich mache genau dasselbe, was du planst zu tun. 1 Kontext verwendet wieder mehrere DBs für die Migration. Dann greifen viele beschränkte Kontexte mit initializer = null auf die DBs zu. Ich bin mir nicht sicher, warum es nicht für dich tut. –