我正在使用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
文件中存储的最后一个本地快照。我对吗?有什么方法可以解决这个问题吗?