Code First迁移的命名约定

时间:2014-11-03 10:31:14

标签: entity-framework ef-code-first naming-conventions ef-migrations

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

调用这些迁移的方法是什么?这些例子总是被过分简化:例如添加属性Readers会导致迁移AddReaders

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

2 个答案:

答案 0 :(得分:4)

是的,我认为最好的方法是使用描述性名称来细分对小单位的更改。与git一样,您应该经常提交,通过迁移,您应该经常迁移。不一定是财产,但包含逻辑工作单元。

如果您需要为某个功能添加两个表,请在一次迁移中添加这两个表。避免在创建迁移之前进行大量迁移,以便在数天内更改模型。时间对避免冲突至关重要。

如果存在依赖项,则一次迁移应包含相关更改,因此如果其他开发人员应用迁移,则该应用程序仍然有效。

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

当您处理小型变更单元时,合并和解决冲突变得更加容易。

答案 1 :(得分:0)

我一直在努力解决同样的问题并尝试不同的解决方案。到目前为止,我们提出的是让所有开发人员从签入过程中排除迁移,然后让一个指定的开发人员执行"发布迁移"其中包括项目所有其他人员的变更。