Изменение строки соединения LINQ-to-SQL во время выполнения - PullRequest
4 голосов
/ 22 августа 2011

В моем приложении широко используется LINQ-to-SQL, и теперь требуется, чтобы приложение могло переключаться между базами данных, которые оно просматривает, во время выполнения - поэтому, по сути, я хотел бы иметь возможность выбирать соединениестрока моего контекста данных, когда я объявляю его.

Есть ли простой способ сделать это?

Ответы [ 3 ]

12 голосов
/ 22 августа 2011

Просто позвоните:

DataContext context = new DataContext ("cxstring");
6 голосов
/ 22 августа 2011

Вы можете использовать App.config для хранения строк подключения, а затем использовать их для заполнения выпадающего списка или чего-то еще.Затем используйте выбранную строку подключения в конструкторе контекста данных LINQ2SQL.

App Config:

<configuration>
  <connectionStrings>
    <add key="ConString1" connectionString="ConnectionStringGoesHere"/>
    <add key="ConString2" connectionString="ConnectionStringGoesHere"/>

  </connectionStrings>

Используйте класс ConfigurationManager для доступа к строкам подключения.

string conString = ConfigurationManager.ConnectionStrings["ConString1"].ConnectionString;

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

Затем просто передайте выбранную строку в качестве первого параметра в конструкторе данных LINQ2SQL.

MyModelDataContext context = new MyModelDataContext(selectedConString);
1 голос
/ 22 августа 2011

Если вы имеете в виду, переключая базу данных, которую просматривает ваше приложение, Тестировать базу данных и производственную базу данных, просто вы можете сделать две строки подключения в файле web.config с одним и тем же ключом, но с другой строкой подключения, и прокомментировать одну из них в соответствии ск нужной базе данных

<add name="MyConnectioString" connectionString="Data Source=myServer;Initial Catalog=ProductionDB;" providerName="System.Data.SqlClient" />
<!--<add name="MyConnectioString" connectionString="Data Source=myServer;Initial Catalog=TestDB;" providerName="System.Data.SqlClient" />-->

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

, чтобы выбрать строку подключения вашего контекста, предоставить ей конструктор

DataContext Productioncontext = new DataContext ("MyConnectioString");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...