Gibt es eine Möglichkeit, die Verbindungszeichenfolge eines DataBase-Objekts in der Enterprise-Bibliothek zur Laufzeit zu ändern? Ich habe diesen Link gefunden, aber es ist ein bisschen veraltet (2005)
>Ich habe auch dies gefunden es scheint für .Net im Allgemeinen zu gelten, ich habe mich gefragt, ob es etwas gibt, das speziell für EntLib getan werden könnte.
Ich habe gerade den Namen der Verbindungszeichenfolge an die CreateDatabase () -Methode im DatabaseFactory-Objekt übergeben, und bis gestern hat mein Projektmanager mich gebeten, mehr als eine Datenbankinstanz zu unterstützen. Es kommt vor, dass wir eine Datenbank pro Staat haben müssen (eine für CA, eine für FL, etc ...), also muss meine Software alle Datenbanken durchlaufen und etwas mit Daten machen, aber es wird dieselbe Konfigurationsdatei verwenden.
Vielen Dank im Voraus.
Wenn Sie sich " Enterprise Library Docs - Hinzufügen von Anwendungscode ansehen" es sagt das:
"Wenn Sie die Verbindungszeichenfolge für die Datenbank, die Sie erstellen möchten, Sie kann die Anwendung umgehen Konfigurationsinformationen und verwenden Sie a Konstruktor zum direkten Erstellen der Datenbankobjekt Weil die Datenbank Klasse ist eine abstrakte Basisklasse, du muss einen seiner abgeleiteten konstruieren Arten. Der abgeleitete Datenbanktyp bestimmt den ADO.NET-Datenanbieter. Zum Beispiel die SqlDatabase-Klasse verwendet den SqlClientFactory-Anbieter, Die SqlCeDatabase-Klasse verwendet die SqlCeProviderFactory-Provider und der OracleDatabase-Klasse verwendet die OracleClientFactory-Anbieter. Es ist Ihre Verantwortung, das zu konstruieren geeignete Art der Datenbankklasse für die Verbindungszeichenfolge. "
Es geht dann weiter, um einige Beispiele zu geben. Dies würde bedeuten, dass Sie die DatabaseFactory nicht verwenden sollten und dass Sie für jede Ihrer verschiedenen Verbindungen eine neue Datenbank-Klasse erstellen sollten.
schau dir das an: Open Microsoft.practices. EnterpriseLibrary-Datenbank mit nur einer Verbindungszeichenfolge
verwenden Sie einfach diesen Code, Sie können die Datenbank zur Laufzeit erstellen
%Vor%Es hat mein Problem gelöst. Ich habe eine einzelne Webanwendung, die viele Datenbanken verwendet, entsprechend der verschiedenen Subdomain in der URL, um eine Verbindung zu der anderen Datenbank herzustellen. wie:
Ich benutze url-rewrite, um den Subdomain-Namen zu analysieren, und benutze den Subdomain-Namen, um die Datenbankverbindungszeichenfolge auszuwählen, die in der Hauptdatenbank gespeichert ist.
Danke
Wir können das folgende Code-Snippet verwenden, um eine Verbindung zu mehreren Datenbanken herzustellen.
DLLs zum Hinzufügen als Referenz
Das Snippet:
%Vor%Tags und Links configuration .net c# database enterprise-library