EF 4.4:模型更改与数据库不同步
本文关键字:数据库 同步 模型 EF | 更新日期: 2023-09-27 18:22:47
我在实体框架中向模型添加了两列,并将一个字段从字符串更改为枚举。当我转到Package Manager控制台并键入"更新数据库"时,我会得到以下错误:
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版本号。
有什么想法吗?
修复了此问题;必须从文件路径(!!!)中删除一个符号
我遇到了同样的问题,结果是解决方案中的两个项目使用了不同版本的EntityFramework。我的代码优先对象是在它们自己的.NET Framework 4.0程序集中构建的,但该解决方案的启动项目是一个.NET 4.5 MVC项目。尽管这两个项目都使用了实体框架"5.0",但EF5的.NET 4版本是不同的程序集(4.4版)
我发现一个允许"更新数据库"命令工作的临时修复程序是更改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。