AutomaticMigrationsEnabled为false还是true?

Vah*_*ani 32 entity-framework entity-framework-4 ef-migrations

在EF项目中,是否有设置AutomaticMigrationsEnabled的最佳实践?

更多声明:

在我们的团队修改模型后,我们通常在Package Manager Console中运行"add-migration"和"update-databse"命令.当其他开发人员运行该项目时,会出现此错误:

"无法删除数据库,因为它正在使用中"

每次发生这种情况时,第一个修饰符应该是Check In整个项目而其他修饰符必须GET修改对象.在许多情况下,我们不想检查已经创建的模型和迁移!

这种情况很烦人,有没有解决这类问题的方法.提前致谢.

Lad*_*nka 46

自动迁移为您提供了所有的魔力,但它们不允许严格的版本控制(您没有为每个版本进行特殊的固定迁移).如果没有严格的版本控制,您无法跟踪数据库的版本,也无法进行显式升级(根本不能降级).

如果您不打算在需要知道数据库版本的地方使用版本控制,并且如果您不打算使用降级,则只需使用自动迁移即可.

"无法删除数据库,因为它正在使用中"

看起来你正在使用shared database = show stopper.每个开发人员都应使用自己的数据库

但是不想签出已经创建的模型和迁移!

这是一种最佳做法,如果您想继续进行基于代码的迁移,则必须遵循它.顺便说一句.有一种称为"持续集成"的做法 - 在持续集成中,您应该在成功构建提交并通过测试后立即获得.

  • 你在寻找什么建议?只需在本地安装数据库服务器,或者在共享服 在前一种情况下,您只需要将连接字符串中的"数据源"更改为本地计算机,并且每个开发人员都将拥有自己的同名数据库.后一种情况需要每个开发人员的连接字符串,因此您必须确保一些签入策略,以避免在源代码管理中存储开发人员特定的连接字符串. (4认同)

Lar*_*y S 12

来自:http://msdn.microsoft.com/en-us/data/jj554735.aspx

团队环境建议

您可以散布自动和基于代码的迁移,但在团队开发方案中不建议这样做.如果您是使用源代码管理的开发人员团队的一员,则应使用纯自动迁移或纯粹基于代码的迁移.鉴于自动迁移的局限性,我们建议在团队环境中使用基于代码的迁移.