C# 在团队源代码管理中处理实体框架代码优先迁移

C# 在团队源代码管理中处理实体框架代码优先迁移,c#,git,entity-framework,entity-framework-6,C#,Git,Entity Framework,Entity Framework 6,我目前在一个使用实体框架6.1.3作为主要对象关系映射(ORM)框架的团队中工作 大多数情况下,它工作得很好,但当两个或多个不同的团队成员添加了迁移时,问题就开始了,然后应该合并这些迁移 来自Microsoft的示例: 为了使模型快照保持最新,我们通常添加一个空白的“合并”迁移来更新快照。来自PMC: Add-Migration "Fix merge" –IgnoreChanges 当然,我们可以在上一次迁移中更新模型快照,但由于我们使用拉请求并相互验证代码,因此通常会有两次迁移挂起,但没

我目前在一个使用实体框架6.1.3作为主要对象关系映射(ORM)框架的团队中工作

大多数情况下,它工作得很好,但当两个或多个不同的团队成员添加了迁移时,问题就开始了,然后应该合并这些迁移

来自Microsoft的示例:

为了使
模型快照保持最新,我们通常
添加一个空白的“合并”迁移来更新快照。来自PMC:

Add-Migration "Fix merge" –IgnoreChanges 
当然,我们可以在上一次迁移中更新模型快照,但由于我们使用拉请求并相互验证代码,因此通常会有两次迁移挂起,但没有一次添加到
master
分支中,因为它们未经审核

虽然空白迁移,但是我们在这里也遇到了问题。示例:两次迁移已同步到主机,模型快照不同步。开发人员对数据库模型进行了一些更改,然后与master进行了合并。开发人员需要添加一个空白合并,以便同步模型快照。使用
–IgnoreChanges
的问题是,即使开发人员对其分支中的模型进行了一些更改,迁移也将是空白的。如果未使用
–IgnoreChanges
,则新迁移中的每个更改也将显示,并且可能会导致异常,因为代码将添加两次


有没有其他方法可以在代码中解决这个问题?现在,我们正在提醒Slack中的迁移在pull请求中给予它们优先级,但这远远不是一个最佳流。考虑到我一直在读的东西,我认为这是不可能的,但我很乐意被证明是错的。考虑到我们今天使用的拉请求流,在上次迁移中更新模型快照并不总是对我们有效。

坦率地说,这在以前已经被问过很多次了。之前的问题和答案没有一个提供令人满意的解决方案吗?@GertArnold是的,它提供了,我想我已经阅读了大部分的帖子。然而,解决方案总是上面两个例子中的一个,我认为它们都有一些缺点。如果可以用另一种方式来做,我想知道。