实体框架迁移:为什么忽略快照并考虑__MigrationHistory?

时间:2015-06-13 19:47:20

标签: c# entity-framework ef-migrations

我正在使用EF 6.0.0和.Net 4.5。

我面临一个非常令人困惑的问题。我和我的一位同事正在两个不同客户的项目领域模型部分工作。问题是:

1 - 我和我的同事从完全相同的项目开始,我们与源代码控制完全同步。

2 - 当我更改模型时,例如添加一个属性,然后Add-Migration FromA,然后Update-Database它的效果很好。生成的代码文件只包含一个用于添加列的命令。

3 - 同时,在更新db之后,在我检查源代码控制权之前,我的同事添加了另一个属性,然后Add-Migration FromA然后{{1 }}。你猜怎么着?生成的代码文件有一个命令可以删除我新添加的列!!!

我使用本机Sql添加了另一列,幸运的是该列不会被删除。

我删除了Update-Database表,并且未生成删除列。

我关闭了初始化程序__MigrationHistory,但没有成功。

所以,我的猜测是Database.SetInitializer<MyContext>(null)将当前模型与EF Migrations表中存储的最后一个模型进行比较,而不是__MigrationHistory文件中存储的最后一个本地快照。我对吗?有什么方法可以解决这个问题吗?

0 个答案:

没有答案
相关问题