【发布时间】:2014-03-19 02:45:08
【问题描述】:
我刚刚将使用代码优先模型的项目从 Entity Framework 6.0.2 升级到 6.1.0。
升级后context.Database.CompatibleWithModel(true)返回false,所以EF认为数据库不再兼容模型。其他什么都没改,只是升级了EF。
我跑了Add-Migration 看看会发生什么,EF 创建了一个大型迁移,似乎在每个表的每个外键属性上都创建了一个索引:
public override void Up()
{
CreateIndex("dbo.ActivityStreams", "UserId");
CreateIndex("dbo.Users", "OfficeId");
CreateIndex("dbo.Offices", "ParentId");
CreateIndex("dbo.Rosters", "UserId");
...and many more similar lines...
我猜这与 EF 6.1 中的新索引功能有关?有点奇怪,不过还好。
当我Update-Database 应用新的迁移时,出现索引已经存在的错误。查看数据库和以前的迁移,几乎所有索引确实已经存在。
我在这里做错了什么?有升级EF的流程吗?
【问题讨论】:
-
您自己创建过索引吗?
-
不,所有现有索引都是由 EF 迁移创建的。
-
这里的场景完全相同。确实是一个错误-(
标签: c# entity-framework