实体框架显式迁移

时间:2017-06-21 09:51:10

标签: entity-framework

我们有一个运行Entity Framework 6.1的项目,我们不久前开始使用显式迁移(过去我们会使用自动迁移),我们遇到了以下情况。

  1. 我创建了一个显式迁移来在字段上创建一些索引。我是在一个单独的分支中这样做的。
  2. 我的一位同事也开始明确迁移,在自己的分支机构做其他工作。
  3. 每个分支都经过代码审核,并在批准后合并到主分支中。 但是现在我们注意到我在模型的不同版本上创建了用于创建索引的显式迁移。由于它是一个拥有多个开发人员的项目,因此模型总是在变化。因此,如果我们检查将生成哪些SQL代码来更新数据库,我们会看到在我的分支上工作时添加的新列/表/ ...正在被删除,然后我的索引被创建然后再添加这些列。

    我们怎样才能避免这种情况?我们在工作流程中做错了什么?

1 个答案:

答案 0 :(得分:1)

使用EF 6,每次迁移都有关于DB最后状态的元数据 在EFCore中,使用具有DB快照的单独文件可以做得更好 以下是团队环境中迁移的一些良好实践:
https://msdn.microsoft.com/en-us/library/dn481501(v=vs.113).aspx
How to manage Migrations in a project with multiple branches?

现在您的情况非常具体,我不确定这些程序是否都有自动解决方案 我能想到的一种方法是让DB模型不在本地但在服务器上,并且每个开发人员在创建迁移时都会将其作为目标 但是在以前的博客中,共享DB并不是最佳实践。 您需要找出一些符合每个建议的混合程序。 祝你好运......