entity-framework - 如何在 mvc4 中分离调试和释放连接等

标签 entity-framework deployment release release-management profiles

所以我是相当新的 MVC4,许多模式对我来说都是新的。

然而,我很好奇的一件事是关于发布/ Debug模式的最佳实践。
对我来说,实时模式和 Debug模式之间有很多不同之处,我希望它们都是自动的,所以我不需要更改任何内容即可发布。

因此,例如,我在我的 repo (域项目)中做了这样的事情
公共(public)类 EFAccountRepository : IAccountRepository
{
私有(private) EFDbContext _context;

    public EFAccountRepository()
    {
#if DEBUG
        _context = new EFDbContext("name=Debug");
#else
        _context = new EFDbContext("name=Live");
#endif
    }

在我的 DI (webui) 中像这样
#if DEBUG
        EFDbContext efcontext = new EFDbContext("name=Debug");
#else
        EFDbContext efcontext = new EFDbContext("name=Live");
#endif

或者简单地拥有会更聪明吗
EFDbContext efcontext = new EFDbContext("name=MyApp");

然后用 web.config 改变 myApp 是什么意思?

任何其他自动化调试/发布发布的技巧都受到热烈欢迎。

最佳答案

我强烈建议不要将连接字符串硬编码到代码中。请考虑将您的代码指向 web.config 转换。您可以在此处添加连接字符串,并根据代码版本应用适当的转换,因此您只需在应用程序中使用以下代码一次即可覆盖所有环境。

ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString

在调试版本中,您可能会有类似的东西
<configuration xmlns:xdt="...">
    <connectionStrings>
      <add name="MyConnectionString" connectionString="debugstring"
         providerName="debugprovider" />
     </connectionStrings>
</configuration>

在您的发布版本中,您可以告诉转换替换旧字符串
<configuration xmlns:xdt="...">
    <connectionStrings>
      <add name="MyConnectionString" connectionString="newstring"
         providerName="newprovider"
         xdt:Transform="Replace" />
     </connectionStrings>
</configuration>

如需更多引用,请查看
http://msdn.microsoft.com/en-us/library/dd465326.aspx

关于entity-framework - 如何在 mvc4 中分离调试和释放连接等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15706477/

相关文章:

azure - 将 Azure 应用服务添加到新的 VNet 集成预览

maven - 使用 Maven 管理微服务之间的多个依赖关系

Android 唤醒锁未释放

Flutter Material 图标(适用于网络)在 Release模式下不起作用

linq - 不支持嵌套查询。操作 1 ='UnionAll' 操作 2 ='MultiStreamNest'

c# - GridView 中的复杂对象

c# - 要在 Entity Framework 中编辑多对多关系,为什么必须先清除集合?

php - Doctrine2 - 关系取决于参数

.net - 是否可以压缩ClickOnce部署的应用程序设置?

java - 从 Eclipse 导出 OSGI 应用程序