我的一個應用程序廣泛使用LINQ-to-SQL,現在它是應用程序的一個要求,能夠在運行時切換它正在查看的數據庫 - 我希望能夠在聲明它時選擇我的數據上下文的連接字符串。在運行時更改LINQ-to-SQL連接字符串
有沒有簡單的方法來做到這一點?
我的一個應用程序廣泛使用LINQ-to-SQL,現在它是應用程序的一個要求,能夠在運行時切換它正在查看的數據庫 - 我希望能夠在聲明它時選擇我的數據上下文的連接字符串。在運行時更改LINQ-to-SQL連接字符串
有沒有簡單的方法來做到這一點?
只要致電:
DataContext context = new DataContext ("cxstring");
你可以使用一個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);
如果通過切換意味着你的應用程序正在尋找,測試數據庫和生產數據庫的數據庫,只要可以使兩個連接字符串中的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");