Укажите активную строку подключения для использования в Web.Конфиг


Есть ли быстрый и простой способ установить строку подключения в Web.Config будет активной строкой подключения?

Я в основном хочу назвать мои строки подключения соответствующим образом, а затем установить один как активный без необходимости переключать имена или повторно компилировать мое приложение.

Что-то вроде этого:

<add name="Current" connectionString="{Local}"/>

<add name="Local" connectionString=[...]" />
<add name="RemoteOnMyServer" connectionString=[...]" />
<add name="RemoteAzure" connectionString=[...]" />
2 2

2 ответа:

Я не думаю, что это возможно так, как вы просили. Но вы можете переместить блок строк подключения в отдельный файл, а затем указать, какой файл является активным:

<connectionStrings configSource="LocalDb.config"/>

Тогда вы можете иметь отдельные конфигурационные файлы:

LocalDb.config
RemoteOnMyServer.config
RemoteAzure.config
<etc>

Каждый из них будет содержать что-то вроде этого:

<?xml version="1.0"?>
<connectionStrings>
    <add name="namedConnectionString" connectionString="Data Source=..." providerName="..." />
</connectionStrings>

Swithcing между ними тогда становится вопросом изменения configSource на элементе <connectionStrings />.

У Скотта Ханселмана есть хорошая статья, описывающая использование различных конфигураций для различных сред с использованием параметра сборки в компиляторе. Я использовал это с большим успехом в некоторых своих проектах.

Посмотрите