4

我在 ASP.NET Web 窗体应用程序 (4.5) 上使用 EF5 数据库优先和测试和产品数据库服务器(相同的模式)。有没有办法在 global.asax 的 Application_Start 中动态设置目标连接字符串?因此,当我在测试服务器上时,使用“test”连接字符串,而当我在 prod 服务器上时,使用“prod”连接字符串。

4

3 回答 3

1

您是否看过http://msdn.microsoft.com/en-us/library/gg679467%28v=vs.103%29.aspx DbContext(string connection)?

对象上下文:http : //msdn.microsoft.com/en-us/library/bb739017.aspx

请记住,ObjectContext 的连接字符串不是经典的连接字符串,而是更复杂的 EF 连接字符串。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <connectionStrings>
    <add name="Database1Entities" 
         connectionString="metadata=res://*/Model1.csdl
|res://*/Model1.ssdl
|res://*/Model1.msl;
provider=System.Data.SqlClient;provider connection string="
Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;
Integrated Security=True;
User Instance=True;
MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
  </connectionStrings>
</configuration>

另请参阅http://msdn.microsoft.com/en-us/library/system.data.entityclient.entityconnection.aspx。使用实体连接,您可以基于现有的经典 DbConnection 创建 ObjectContext。

于 2012-12-18T17:15:15.850 回答
0

希望这对其他人有所帮助-但看起来我们可以通过以下示例找到一种方法:https ://stackoverflow.com/a/8240733/448704

于 2012-12-19T18:02:06.333 回答
0

对于这类任务,我建议使用内置于 VS 的工具。使用它们,Visual Studio 将根据您要发布的服务器自动切换配置(不仅是连接字符串)。查看此链接了解更多信息:Web 部署非常棒

于 2013-07-30T07:41:25.773 回答