Die ConnectionStringSection
ist nur ein Container zum Speichern von benannten Verbindungszeichenfolgen. Wenn Sie eine Verbindung zu verschiedenen Datenbanken herstellen möchten, empfiehlt es sich, zunächst die verschiedenen Verbindungszeichenfolgen in diesem Abschnitt von Anfang an zu speichern und anschließend festzulegen, wie Ihre Anwendung zur Laufzeit auswählen soll.
Denken Sie an diesen Abschnitt als nur das und nichts mehr - es ist ein bequemer, bekannter Ort, um Verbindungszeichenfolgen mit einer Standardmethode zu speichern, um sie abzurufen. Andere Entwickler, die an dem Code arbeiten, werden wissen, wo sie nach ihnen suchen und wie sie sie abrufen können.
Obwohl es technisch möglich ist, diesen Abschnitt zur Laufzeit zu ändern und die Datei zu speichern, würde ich das nicht tun. Wenn Sie denselben Code verwenden, der während der Ausführung in derselben Umgebung verschiedene Verbindungszeichenfolgen verwenden kann (es handelt sich nicht um einen für die Entwicklung, einen für die Qualitätssicherung und einen für die Produktion), könnte Ihre Klasse von einer solchen Schnittstelle abhängig sein :
public interface IConnectionStringFactory
{
string GetConnectionString(Something key);
}
Wo Something
ist ein Wert, dass die Klasse die Verbindungszeichenfolge erfordert in die Fabrik passieren kann, und die Fabrik kann es verwenden, um die Verbindungszeichenfolge abzurufen zu bestimmen. Auf diese Weise ist die Klasse, die die Verbindungszeichenfolge verwendet, von dieser Logik isoliert. Es weiß nicht, warum es eine Verbindungszeichenfolge oder eine andere verwendet. Es erhält nur eine Verbindungszeichenfolge von der Fabrik und verwendet sie dann.
Wenn es sich um unterschiedliche Verbindungszeichenfolgen nach Umgebung handelt, ist das viel einfacher - Sie können das mit config transforms tun. In den meisten Fällen, wenn es eine andere Umgebung ist als alle werden die Verbindungszeichenfolgen für jede Umgebung unterschiedlich sein, so dass Sie nur den gesamten Abschnitt ersetzen können.
<connectionStrings xdt:Transform="Replace">
<add name="connectionStringA" connectionString="...whatever..." />
</connectionStrings>
Wenn das die Antwort ist, bitte vergessen Sie nicht, es als beantwortet zu markieren. Vielen Dank –