在运行时更改LINQ-to-SQL连接字符串

本文关键字:连接 字符串 LINQ-to-SQL 运行时 | 更新日期: 2023-09-27 18:06:31

我的一个应用程序广泛使用LINQ-to-SQL,现在它是一个应用程序的要求,能够切换数据库,它正在查看运行时-所以本质上我希望能够选择我的数据上下文的连接字符串,当我声明它。

有简单的方法吗?

在运行时更改LINQ-to-SQL连接字符串

调用:

DataContext context = new DataContext ("cxstring");

你可以使用App.config来存储你的连接字符串,然后用它们来填充下拉框或其他东西。然后在LINQ2SQL数据上下文的构造函数中使用选定的Connection字符串。

应用程序配置:

<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);

如果您的意思是通过切换您的应用程序正在查看的数据库,测试数据库和生产数据库,只需您可以在您的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");