美好的一天,
我的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
但我不喜欢这种方法。还有其他我可以测试的东西吗?
答案 0 :(得分:1)
您可以考虑以下几种方法:
您可以使用configSource
属性从另一个文件中读取该元素的配置,每个机器的内容可能不同:
或者您可以使用不同的构建配置和use XDT来转换web.config
文件。
答案 1 :(得分:1)
真的不太难做 - 诀窍是使用System.Environment.MachineName
来驱动要选择的字符串并从静态属性中获取连接字符串:
public static string ConnectionStringName
{
get
{
var customConnection = ConfigurationManager.ConnectionStrings[Environment.MachineName] != null;
var connectionStringName = customConnection ? Environment.MachineName : "DefaultDb";
return connectionStringName;
}
}