1

是否可以使用web.config关闭实体框架?在应用我发展,我们有以下的环境如何关闭环境的实体框架CF迁移

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

集成测试和生产数据库是由数据库管理管理员,所以我们必须发送一个脚本来修改数据库。

我花了数小时搜索并浏览了旧项目,而且我无法找到如何做到这一点,或者记住,如果我们曾经关闭旧项目的迁移,首先。

由于缺乏信息,我怀疑我所要求的是否需要或可能,但是在我的脑海里有一些令我烦恼的事情,所以我想我会问专家。

回答

2

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

+0

实际上,我们使用您在博客中提到的脚本技术。 http://cpratt.co/migrating-production-database-with-entity-framework-code-first/ – 2015-02-24 16:46:59

2

你可以设置在底部here描述配置文件中的数据库初始化,所以你可以有你想要

+0

我正在看那个页面。 Iniatializer不仅在数据库不存在时使用?它告诉EntityFramework创建一个新的数据库等等 – 2015-02-24 16:48:09

+0

取决于初始值设定项。例如,有'DropCreateDatabaseWhenModelChanges',正如其名称所暗示的那样,只要架构发生变化,就会完全重新创建数据库。通常为了处理现有的数据库,您只需将初始化程序指定为'null',这将完全关闭初始化。 – 2015-02-24 16:55:05

+0

这种方法唯一的问题是设置初始化器是在代码中完成的,所以它的全部或全部都没有,除非你使用编译器指令或某种基于Web.config设置的switch语句来做某事。 – 2015-02-24 16:57:46