我在Entity Framework中为我的模型添加了两列,并将一个字段从字符串更改为Enumeration。当我转到Package Manager Console并输入“update-database”时,我收到以下错误:
System.Runtime.Serialization.SerializationException: Type is not resolved for member 'System.Data.Entity.Migrations.Design.ToolingFacade+UpdateRunner,EntityFramework, Version=4.4.0.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.Update(String targetMigration, Boolean force)
at System.Data.Entity.Migrations.UpdateDatabaseCommand.<>c__DisplayClass2.<.ctor>b__0()
at System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(Action command)
Type is not resolved for member 'System.Data.Entity.Migrations.Design.ToolingFacade+UpdateRunner,EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
启用迁移时出现同样的错误。
我看到一个问题建议摆脱__Migrations表,我做了,但它似乎没有帮助。
另一个解决方案建议将项目更改为.NET 4.5,然后重新安装EF 5,我做了,但所有这些都改变了错误中的EF版本号。
有什么想法吗?
答案 0 :(得分:1)
修正了这个问题;必须从文件路径中删除&符号(!!!!)
答案 1 :(得分:0)
我遇到了同样的问题,结果是使用不同版本的EntityFramework解决方案中的两个项目。我的代码第一个对象是在他们自己的.NET Framework 4.0程序集中构建的,但该解决方案的启动项目是.NET 4.5 MVC项目。尽管两个项目都使用了Entity Framework“5.0”,但EF5的.NET 4版本是一个不同的程序集(版本4.4)。
我发现允许“Update-Database”命令工作的临时修复是在Web.config文件中更改此部分:
<dependentAssembly>
<assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
</dependentAssembly>
对此:
<dependentAssembly>
<assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.4.0.0" newVersion="4.4.0.0"/>
</dependentAssembly>
我的最终解决方法是使用我的代码第一类更新程序集到.NET 4.5并重新安装EF5。