C# 运行代码首次迁移更新数据库时出错

C# 运行代码首次迁移更新数据库时出错,c#,entity-framework,asp.net-web-api,C#,Entity Framework,Asp.net Web Api,我在迁移到我的数据库时遇到了问题,我似乎找不到对我所遇到的错误的答案 System.MissingMethodException: Method not found: 'System.Data.Entity.Migrations.Builders.TableBuilder`1 System.Data.Entity.Migrations.Builders.TableBuilder`1.Index(System.Linq.Expressions.Expression`1>, Boolean, Boo

我在迁移到我的数据库时遇到了问题,我似乎找不到对我所遇到的错误的答案

System.MissingMethodException: Method not found: 'System.Data.Entity.Migrations.Builders.TableBuilder`1 System.Data.Entity.Migrations.Builders.TableBuilder`1.Index(System.Linq.Expressions.Expression`1>, Boolean, Boolean, System.Object)'.
   at Evento.Migrations.initialcreate.Up()
   at System.Data.Entity.Migrations.DbMigrator.ApplyMigration(DbMigration migration, DbMigration lastMigration)
   at System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.ApplyMigration(DbMigration migration, DbMigration lastMigration)
   at System.Data.Entity.Migrations.DbMigrator.Upgrade(IEnumerable`1 pendingMigrations, String targetMigrationId, String lastMigrationId)
   at System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.Upgrade(IEnumerable`1 pendingMigrations, String targetMigrationId, String lastMigrationId)
   at System.Data.Entity.Migrations.DbMigrator.UpdateInternal(String targetMigration)
   at System.Data.Entity.Migrations.DbMigrator.c__DisplayClassc.b__b()
   at System.Data.Entity.Migrations.DbMigrator.EnsureDatabaseExists(Action mustSucceedToKeepDatabase)
   at System.Data.Entity.Migrations.Infrastructure.MigratorBase.EnsureDatabaseExists(Action mustSucceedToKeepDatabase)
   at System.Data.Entity.Migrations.DbMigrator.Update(String targetMigration)
   at System.Data.Entity.Migrations.Infrastructure.MigratorBase.Update(String targetMigration)
   at System.Data.Entity.Migrations.Design.ToolingFacade.UpdateRunner.Run()
   at System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate)
   at System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate)
   at System.Data.Entity.Migrations.Design.ToolingFacade.Run(BaseRunner runner)
   at System.Data.Entity.Migrations.Design.ToolingFacade.Update(String targetMigration, Boolean force)
   at System.Data.Entity.Migrations.UpdateDatabaseCommand.c__DisplayClass2.b__0()
   at System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(Action command)
Method not found: 'System.Data.Entity.Migrations.Builders.TableBuilder`1 System.Data.Entity.Migrations.Builders.TableBuilder`1.Index(System.Linq.Expressions.Expression`1>, Boolean, Boolean, System.Object)'. 

如果您使用的是EF 6.1,则需要为Visual Studio 2013安装更新2。我遇到了同样的问题,下面是我解决问题的方法。我希望这对其他人有帮助

  • 我从引用中删除了实体框架,并从package.config文件中删除了行
  • 关闭Visual Studio并删除了我的项目文件夹中的所有EntityFramework DLL文件
  • 打开了VisualStudio,然后进行了清理和构建
  • 重新安装实体框架
  • 重新进行了一次清洁和建造

  • 之后,它开始工作。

    如果实体框架包含在引用的项目中,但不包含在初始化迁移的项目中,也会发生这种情况。
    解决方案是在该项目中也包含EF。

    我在运行
    db.Database.Initialize(true)时遇到了这个错误。我发现我的控制台应用程序引用的是EFV6.0,但带有DataContext和ModelBuilder的项目是6.1.3


    将console应用程序设置为6.1.3以匹配其他应用程序后,错误消失。

    如果您使用EF 6.2.0对新dll运行较旧版本的
    migrate.exe
    ,则可能会发生这种情况。

    您使用的EF版本是什么?什么样的框架版本(4/4.5)?在我看来,与EF相关的东西没有正确安装。您是否尝试取消安装并安装EF?重新安装EF似乎已使其正常工作。现在我有其他问题。谢谢,我刚刚经历了完全相同的错误-在我的例子中,我有一个多项目解决方案。包含实体和上下文的项目拥有实体框架v6.1.0,启动(Web)项目仍然与实体框架v6.0.2相关联。第一次发布应用程序时,我遇到了一个类似的例外。在我使各个项目的版本保持一致(6.1.0)后,错误得到了解决。+1到@Jason answer。在所有项目中更新我的EF版本修复了这个问题。你的步骤看起来很琐碎,但它们确实有效!谢谢你,伙计!当您删除实体框架时,第3步的clean build是如何工作的?@Paul McCarthy我相信您现在已经解决了这个问题,但对于其他人,我所做的是:注释掉由于删除dll/nuget包而导致编译错误的违规代码,然后进行了清理和构建。我不必像上面提到的那样进行清理构建。我删除了EF nuget,关闭了VS,删除了整个packages文件夹,重新启动了VS,重新添加了EF,然后重建并部署了包,它工作得非常好。谢谢你给我指明了这个方向。发生了这样的事情。但是我不能让它工作我的错,引用的dll与安装的nuget不同:(@fiorebat我在这里也有同样的问题。