2011-08-22 80 views
4

我的一個應用程序廣泛使用LINQ-to-SQL,現在它是應用程序的一個要求,能夠在運行時切換它正在查看的數據庫 - 我希望能夠在聲明它時選擇我的數據上下文的連接字符串。在運行時更改LINQ-to-SQL連接字符串

有沒有簡單的方法來做到這一點?

回答

12

只要致電:

DataContext context = new DataContext ("cxstring"); 
6

你可以使用一個app.config來存儲您的連接字符串,然後用它們來填充一個下拉框或東西。然後在LINQ2SQL數據上下文的構造函數中使用選定的連接字符串。

應用程序配置:

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

    </connectionStrings> 

使用ConfigurationManager中類來訪問你的連接字符串。

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

您也可以枚舉它們或將它們設置爲數據源來填充下拉框。

然後,只需將所選字符串作爲LINQ2SQL datacontext構造函數中的第一個參數傳遞即可。

MyModelDataContext context = new MyModelDataContext(selectedConString); 
1

如果通過切換意味着你的應用程序正在尋找,測試數據庫和生產數據庫的數據庫,只要可以使兩個連接字符串中的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" />--> 

的評論和他們取消註釋,你可以在運行時2個數據庫之間進行切換。

選擇您的上下文的連接字符串,它提供它的構造

DataContext Productioncontext = new DataContext ("MyConnectioString"); 
相關問題