【问题标题】:How to turn off Entity Framework CF Migrations for an environment如何关闭环境的实体框架 CF 迁移
【发布时间】:2015-02-24 15:35:02
【问题描述】:

是否可以使用web.config 关闭实体框架?在我正在开发的应用程序中,我们有以下环境

  • 发展
  • 持续集成
  • 集成测试
  • 生产

集成测试和生产数据库由数据库管理员管理,因此我们必须向他们发送脚本以对数据库进行更改。

我花了几个小时在谷歌上搜索和浏览旧项目,但我找不到如何做到这一点,也不记得我们是否曾经关闭过旧项目的迁移。

由于缺乏信息,我怀疑我所问的是否需要或可能,但我的脑海中有一些东西让我对此感到恼火,所以我想我会问专家。

【问题讨论】:

    标签: asp.net-mvc-5 entity-framework-6 entity-framework-migrations


    【解决方案1】:

    最简单的方法是从这些环境中删除dbo._MigrationHistory 表。如果该表不存在,则只能针对该数据库生成“初始”迁移,如果有人试图将其实际应用于具有现有表的数据库,则该迁移将失败。

    【讨论】:

    • 实际上,我们使用您在博客中提到的脚本技术。 cpratt.co/…
    【解决方案2】:

    您可以在配置文件中设置数据库初始化程序,如底部here 所述,因此您可以在所需的环境中更新初始化程序

    【讨论】:

    • 我已经在看那个页面了。 Iniatializer 不仅在数据库不存在时使用吗? IE 它告诉 EntityFramework 什么来创建一个新的数据库等
    • 取决于初始化程序。例如DropCreateDatabaseWhenModelChanges,顾名思义,它会在架构更改时完全重新创建数据库。通常,对于现有数据库,您只需将初始化程序指定为 null,这实际上会完全关闭初始化。
    • 这种方法的唯一问题是设置初始化程序是在代码中完成的,所以除非你做一些像使用编译器指令或某种基于 Web 的 switch 语句这样的骇人听闻的事情,否则它是全有或全无。配置设置。
    • @Chris 该博客准确地展示了如何在没有任何自制黑客的情况下从配置中设置初始化程序。
    猜你喜欢
    • 2015-05-11
    • 2014-09-06
    • 1970-01-01
    • 1970-01-01
    • 2017-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多