Ändern der Verbindungszeichenfolge zur Laufzeit in der Enterprise Library

8

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.

    
Gustavo Rubio 28.11.2008, 18:18
quelle

4 Antworten

3

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.

    
Martin Brown 03.12.2008, 11:02
quelle
13

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:

  • abc.test.com ------ & gt; mit dem Db_projectABC
  • def.test.com ------ & gt; unter Verwendung von db_ProjectDEF

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

    
bentz 17.03.2011 02:40
quelle
2

Hier ist Yangs Netzgebiet:

%Vor%     
Junior M 08.01.2010 15:01
quelle
1

Wir können das folgende Code-Snippet verwenden, um eine Verbindung zu mehreren Datenbanken herzustellen.

DLLs zum Hinzufügen als Referenz

  1. Microsoft.Practices.EnterpriseLibrary.Common.dll
  2. Microsoft.Practices.EnterpriseLibrary.Data.dll
  3. Microsoft.Practices.ServiceLocation.dll

Das Snippet:

%Vor%     
Sujoy Roy Chowdhury 19.02.2014 07:30
quelle