Ich kann die Migrationen nicht für ein bestimmtes Szenario durchführen.
Unsere Anwendung verwendet zwei verschiedene Modelle. Der erste ist für die Hauptdatenbank und dort funktioniert die Migration gut. Das zweite Modell ist für unsere Kundendatenbanken, die für jeden Kunden spezifisch sind (natürlich ...), aber alle teilen das gleiche Modell.
In der Anwendung (ASP.Net MVC 3) identifizieren wir also den Kunden, der die Route verwendet, und alle Kunden werden in derselben Anwendung gehostet. Also übergeben wir für jede Anfrage einen Schlüssel an unser Kundenmodell dbContext constructor, und mit diesem Schlüssel stellen wir die Verbindungszeichenfolge über eine einfache Hilfsmethode wieder her.
Die Anwendung funktioniert einwandfrei, aber nicht die Migrationen, da ich keine Möglichkeit gefunden habe, den Schlüssel in der Package Manager-Konsole zu übergeben.
Ich habe versucht, meine eigene IDbConnectionFactory zu erstellen, aber sie wird nicht berücksichtigt.
Wenn ich einen update-database-Befehl mit der Verbindungsfactory ausprobiere, erhalte ich den folgenden Fehler, der normal ist, da kein Schlüssel übergeben wird, aber ich sehe, dass meine Verbindungsfactory einsteigt (EFCustomerModel.EFConnectionFactory):
%Vor%Aber wenn ich versuche, meinen Schlüssel mit dem Parameter -ConnectionString zu übergeben, wird meine Verbindungsfactory ignoriert und ich bekomme den gleichen Fehler:
%Vor%Ist dies also ein nicht unterstütztes Szenario in den Migrationen oder gibt es eine andere Möglichkeit, meinen Schlüssel zu übergeben, oder gibt es eine andere Möglichkeit, meine Verbindungszeichenfolgen zu generieren?
Danke,
Sie können einen Schlüssel an Ihre benutzerdefinierte Verbindungsfactory mit dem Parameter -ConnectionStringName
übergeben. Dieser Parameter würde an die Methode CreateConnection
übergeben.
Eine andere mögliche Lösung wäre, die DB-Migration von Ihrem Code aus aufzurufen:
%Vor%