运行代码优先迁移更新数据库时出错
本文关键字:数据库 出错 更新 迁移 代码 运行 | 更新日期: 2023-09-27 17:53:24
我在迁移到我的数据库时遇到了麻烦,我似乎找不到我得到的错误的答案
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)'.
我遇到了同样的问题,这里是我如何解决它。我希望这能帮助到别人。
- 我从我的参考资料中删除了实体框架,并从我的包中删除了行。配置文件(年代)。
- 关闭Visual Studio并删除我的项目文件夹中所有的EntityFramework DLL文件
- 打开Visual Studio,然后进行清理和构建
- 重新安装实体框架
- 重新进行清理和构建
在那之后,它工作了
如果Entity Framework包含在一个引用的项目中,但不包含在您初始化迁移的项目中,也可能发生这种情况。解决方案是将EF也包含在该项目中。
如果您使用EF 6.2.0在新dll上运行旧版本的migrate.exe
我运行db.Database.Initialize(true);
时遇到了这个错误。我发现我的控制台应用程序引用了EF v 6.0,但带有DataContext和ModelBuilder的项目是6.1.3。
在将控制台应用程序设置为6.1.3以匹配其他应用程序后,错误消失了。
如果您使用的是EF 6.1,则需要安装Visual Studio 2013的更新2