我正在尝试设置我的web.config的connectionString,以便可以在运行时使用下拉列表将其从“data source = MyDevDatabase”更改为“data source = MyQADatabase”。该应用程序是在ASP.NET MVC中构建的,我使用的是Entity Framework Database First方法,因此我在Models文件夹中有一个.edmx文件。
Here是我找到的最接近的答案(在app.config / web.config文件中向下滚动到数据库/模型优先连接字符串)。
但我不确定如何实施它。有人可以举个例子吗?
答案 0 :(得分:2)
在web.config中有2个不同的连接字符串,带有2个名称。 每次调用数据库时都必须手动提供连接字符串。
带有2个连接字符串的Webconfig:
<configuration>
<connectionStrings>
<add name="ConnectionString1"
connectionString="Data Source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|YourDatabaseFilename1.mdf;User Instance=True"
providerName="System.Data.SqlClient" />
<add name="ConnectionString2"
connectionString="Data Source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|YourDatabaseFilename2.mdf;User Instance=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
以下是您如何提供连接字符串:
public MyEntities (string connectionString)
: base(connectionString)
{
}
见:
How to have different connection string for different users in Entity Framework
答案 1 :(得分:0)
您可以使用web.config转换(XML转换)来实现。基本上,您将拥有一个具有不同连接字符串的web.config发布文件,当您在发布模式下构建时,它将使用该转换来创建最终的web.config。请参阅Microsoft教程 here
您可以通过右键单击web.config文件并单击“添加配置转换”来添加转换。
编辑:看起来就像你的意思一样。 See this answer 强>