刚刚使用Entity Framework for ASP.NET MVC,并进入我们需要考虑测试和部署我们的第一个应用程序的阶段。到目前为止,我只是将 DbContext 定义为硬编码的SQL Server连接字符串,但是定义了多个模型实体后,在我们的生产和测试数据库服务器之间切换会很痛苦。
通常,当我们编写自己的数据访问层时,我们会在Web.Staging.config
或Web.Release.config
文件中定义类似的内容以便于切换:
<add key="DBIP" value="x.y.z.z" /> <!-- Local Debug -->
然后,当我们建立连接字符串时,我们可以引用任何配置的值。不幸的是,似乎并没有一种全球性的方式。设置这样一个参数,意味着我们每次都要维护几十个EF连接字符串。在生成代码的情况下总会有这样的让步,但我有兴趣看看是否有人已经达成了省力的解决方法。
感谢阅读:)
答案 0 :(得分:0)
您的连接字符串应该保存在您的网络配置中,每个环境都会拥有自己的配置,就像您已声明Web.Staing.config
,Web.Release.Config
您可以将连接字符串的名称传递给DbContext
。在所有环境中保持名称相同,并且您不会遇到问题。
示例强>
public class BaconContext : DbContext
{
public BaconContext()
: base("BaconDatabase")
{
}
}
<configuration>
<connectionStrings>
<add name="BaconDatabase"
connectionString="Data Source=localhost"/>
</connectionStrings>
</configuration>