将Entity Framework与多个服务器配合使用

时间:2013-10-09 10:22:56

标签: asp.net-mvc entity-framework web-config

刚刚使用Entity Framework for ASP.NET MVC,并进入我们需要考虑测试和部署我们的第一个应用程序的阶段。到目前为止,我只是将 DbContext 定义为硬编码的SQL Server连接字符串,但是定义了多个模型实体后,在我们的生产和测试数据库服务器之间切换会很痛苦。

通常,当我们编写自己的数据访问层时,我们会在Web.Staging.configWeb.Release.config文件中定义类似的内容以便于切换:

<add key="DBIP" value="x.y.z.z" /> <!-- Local Debug -->

然后,当我们建立连接字符串时,我们可以引用任何配置的值。不幸的是,似乎并没有一种全球性的方式。设置这样一个参数,意味着我们每次都要维护几十个EF连接字符串。在生成代码的情况下总会有这样的让步,但我有兴趣看看是否有人已经达成了省力的解决方法。

感谢阅读:)

1 个答案:

答案 0 :(得分:0)

您的连接字符串应该保存在您的网络配置中,每个环境都会拥有自己的配置,就像您已声明Web.Staing.configWeb.Release.Config

您可以将连接字符串的名称传递给DbContext。在所有环境中保持名称相同,并且您不会遇到问题。

示例

public class BaconContext : DbContext
{
    public BaconContext()
        : base("BaconDatabase")
    {
    }
}

<configuration>
  <connectionStrings>
    <add name="BaconDatabase"
     connectionString="Data Source=localhost"/>
  </connectionStrings>
</configuration>