10

我已经使用了一个带有单独迁移包的实体框架(对于 3.5 或 4.0,不记得了),并包含了迁移 api(4.3、5.0)。

但是今天我创建了一个新项目(空 MVC4.0 项目),安装最新的稳定 EF(4.3)并在“pm > Add-Migration initital”命令中收到以下错误

System.Runtime.Serialization.SerializationException: Type is not resolved for member 'System.Data.Entity.Migrations.Design.ToolingFacade+GetPendingMigrationsRunner,EntityFramework    , Version=4.3.1.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
   at System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate)
   at System.Data.Entity.Migrations.Design.ToolingFacade.Run(BaseRunner runner)
   at System.Data.Entity.Migrations.Design.ToolingFacade.GetPendingMigrations()
   at System.Data.Entity.Migrations.AddMigrationCommand.<>c__DisplayClass2.<.ctor>b__0()
   at System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(Action command)

然后我尝试切换到 EF5.0,但仍然出现错误,版本有所不同:

System.Runtime.Serialization.SerializationException: Type is not resolved for member 'System.Data.Entity.Migrations.Design.ToolingFacade+GetPendingMigrationsRunner,EntityFramework      , Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.

这是我第一次收到此错误。“
System.Data.Entity.Migrations.Design.ToolingFacade”类存在,其中的“GetPendingMigrationsRunner”子类也存在于引用的EntityFramework程序集中。

任何人都知道什么可能导致错误?迁移适用于 MVC4.0 上的另一个项目,在那些我选择了标准(非空)项目模板的项目上。

谢谢!

4

4 回答 4

6

我可以通过右键单击包含我的迁移的类库并选择“设置为启动项目”来修复此错误

来源:http ://forums.asp.net/t/1978562.aspx?Getting+exception+while+running+EF+Migrations+command+in+Package+Manager+Console

于 2015-04-03T20:27:29.337 回答
3

在某些项目针对 .NET 4.5(因此使用 EF 5)和一些针对 .NET 4(因此使用 EF 4.4)的解决方案中尝试启用迁移时,我遇到了同样的错误。它似乎试图加载错误版本的 EF DLL。

当我暂时从我的解决方案中卸载 .NET 4.5 项目时,我可以在我的其他项目中成功使用 Enable-Migrations。

于 2012-10-30T18:13:37.533 回答
0

当我的计算机磁盘空间不足时,我遇到了这个问题。清理一些文件并重新运行为我解决了这个问题。

于 2017-07-13T15:33:12.773 回答
0

通过在我的解决方案中将测试单元库而不是库本身作为启动项目,我能够避免此错误。

于 2017-02-28T11:06:17.500 回答