1

任何人都可以建议如何编程切换调试和活连接字符串?连接字符串 - MVC实体框架 - 数据库优先

我见过其他人通过一个EntityConnection给构造从控制器这样的:

private XYZDatabase db = new XYZDatabase(ConfigurationManager. 
ConnectionStrings["XYZDatabase-TEST"].ConnectionString); 

,但它仍然需要手动更改呢?有没有办法使用

System.Net.Dns.GetHostName()或类似的 自动切换它?

感谢

回答

0

在我的软件,我只是有相同的名字在我的app.config和注释2个连接字符串/取消注释方式之间切换。

另一种方法是您可以在您的解决方案(.asax文件?)中创建一个静态属性,并在您获取ConnectionStrings时使用它在XYZDatabase-TEST和XYZDatabase之间进行交换。

0

连接字符串添加到Web.config,如:

<connectionStrings> 
    <add name="XYZDatabase-TEST" connectionString="Server=.\SQLEXPRESS;Database=XYZDatabase-TEST";integrated security=SSPI;" providerName="System.Data.SqlClient" /> 
</connectionStrings> 

然后打开你Web.Release.config并添加

<connectionStrings> 
    <add name="XYZDatabase-TEST" 
     connectionString="Data Source=OTHERSERVER;Initial Catalog=XYZDatabase-TEST;Persist Security Info=True;User ID=sa;Password=password" providerName="System.Data.SqlClient" 
     xdt:Transform="SetAttributes" 
     xdt:Locator="Match(name)"/> 
</connectionStrings> 

现在,每次你将你发布应用到部署服务器使用版本配置它将使用来自web.rel的连接字符串ease.config

请注意,在您调试时,此转换在本地不起作用。您必须发布才能运行web.config转换。

相关问题