2012-02-11 190 views
1

美好的一天,動態連接字符串

我在我的web.config文件中定義了兩個連接字符串。

<connectionStrings> 
    <add name="AppDb" connectionString="CONNECTION-STRING1"/> 
    <add name="LaptopDb" connectionString="CONNECTION-STRING2" /> 
</connectionStrings> 

當我在我的桌面上工作時,我想使用連接字符串「AppDb」。當我在筆記本電腦上工作時,我想使用連接字符串「LaptopDb」。每當我在另一臺機器上工作時,我不想在連接字符串中註釋掉該行。

我知道我可以通過編程方式做到這一點。我只是想弄清楚最好的方法。

喜歡的東西:

if (machineName == desktop) 
    use AppDb 
else 
    use LaptopDb 

,但我不喜歡這種方式。還有什麼我可以測試的嗎?

回答

1

真的不是太難的事 - 的伎倆是使用System.Environment.MachineName開車去挑選哪個字符串,並從靜態屬性讓你的連接字符串:

public static string ConnectionStringName 
{ 
    get 
    { 
     var customConnection = ConfigurationManager.ConnectionStrings[Environment.MachineName] != null; 
     var connectionStringName = customConnection ? Environment.MachineName : "DefaultDb"; 
     return connectionStringName; 
    } 
}