实体框架迁移(不同时区)

时间:2013-07-15 14:02:43

标签: entity-framework

我刚开始研究如何使用EF迁移,但已经遇到了问题。让我们假设两个开发人员使用一个解决方案,但他们处于不同的时区。

  1. Dev1创建名为'201307151309449_7.cs'的基于代码的迁移并提交。
  2. Dev2在另一个时区(-3小时),他从源代码管理中获取最新版本。
  3. Dev2执行'Update-Database'命令。在此步骤中,Dev2具有与Dev1相同的DB结构。
  4. Dev2进行了一些更改并创建了名为“201307151010092_8.cs”的迁移。
  5. 带有'_7'前缀的迁移是在'_8'之前创建的,但是visual studio会像先创建的那样存储'201307151010092_8'迁移。因此,基于代码的迁移'201307151010092_8'将不包含Dev2为自己所做的任何更改(方法'Up'和'Down'为空,我不知道为什么会这样)。

    有人可以向我解释在这种情况下(不同时区)如何使用EF Migration吗?

1 个答案:

答案 0 :(得分:0)

这听起来像是一个EF错误,应该报告为一个问题,如果确实它仍然存在于EF6中。

我能想到的一个解决方法可以通过一些协调来应用。这是让Dev2删除'201307151309449_7'迁移然后生成他们的新迁移,并让它包括他们自己的更改和Dev1的更改。 Dev1和Dev2(以及可能的其他人)需要确保他们通过update-database -TargetMigration将他们的数据库带回'201307151309449_7'之前的状态。

另一个明显的解决方法是让Dev2等待3个小时!