Code First迁移的命名约定

TS.*_*TS. 10 entity-framework naming-conventions ef-code-first ef-migrations

我们正在使用代码优先迁移来保持数据库和模型的同步.目前,我们将版本号作为迁移的名称,但显然无效.问题是具有相同名称的多个迁移由不同开发人员为其本地数据库彼此独立创建.这导致一些奇怪的行为,IMigrationMetadata.Id因为时间戳不同,但类是部分同名.

调用这些迁移的方法是什么?这些示例总是过于简单化:例如,Readers在迁移中添加属性结果AddReaders.

或者迁移是否应该分解为这些微小的变化?而不是将所有更改累积到一个大的迁移中.如果存在依赖性怎么办?

小智 5

是的,我认为最好的方法是将更改分解为具有描述性名称的小单元。与 git 一样,您应该经常提交,而对于迁移,您应该经常迁移。不一定逐个属性,但包含逻辑工作单元。

就像如果您需要为某些功能添加两个表,请在一次迁移中添加这两个表。在创建迁移之前,避免在您工作数天的地方进行大迁移,更改模型。时间对于避免冲突至关重要。

如果存在依赖关系,一个迁移应该包含相关的更改,因此如果另一个开发人员应用迁移,应用程序仍然可以工作。

当开发人员进行迁移时,应立即提交并同步(与其他开发人员共享,以防您不使用 git)。

当您使用小的更改单元时,合并和解决冲突会变得容易得多。


ill*_*lug 0

我一直在努力解决同样的问题并尝试不同的解决方案。到目前为止,我们的想法是让所有开发人员从签入过程中排除迁移,然后让一名指定的开发人员执行“发布迁移”,其中包括参与该项目的所有其他人所做的更改。