3

我一直在尝试使用代码优先的迁移,并且取得了一些有限的成功,但是我错误的一件事是我没有告诉它哪个项目具有配置信息。它为我生成了一些类,并且我有所作为,但我认为我应该理清配置问题并重新开始。实体框架代码第一次迁移 - 启用迁移失败

错误。现在我试图删除所有的迁移东西,我发现我无法重新安装它。我已经卸载了,重新安装EF 5,但是当我使用Enable-Migrations命令,我得到一个异常报告:

System.Runtime.Serialization.SerializationException:类型不 解决的成员 “ System.Data.Entity.Migrations.Design.ToolingFacade + GetContextTypeRunner,EntityFramework, Version = 4.4.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'。

不管我现在做的,我似乎无法让过去那个。有任何想法吗?

+1

任何其他人通过Google触及此问题可能要尝试双重检查EF的所有App.config重新映射,以确保它们指向正确的版本(.NET 4为4.4,.NET 4.5为5.0)*并且还*确认项目文件引用了正确的DLL。 Nuget设法在更新过程中以某种方式将其中的某些内容搞砸了,并且将所有内容正确排列,使迁移工具再次运行。 –

+0

@DanFitch非常感谢你,Nuget shenanigans提供了一个程序集绑定重定向,当我在不同版本之间切换时,它没有清除。 –

回答

3

嗯,我不知道为什么这不是一个问题从一开始,但事实证明,这个问题是由我的一些项目的目标是.NET 4.5和一些针对.NET 4.0引起的。这意味着这些项目使用不同版本的EF 5(v5与v4.4),我认为这是造成问题的原因;它试图加载错误版本的DLL。

当我卸载从我的解决方案靶向.NET 4.5的项目,我可以使用启用的迁移对项目靶向.NET 4

28

这发生在我身上,因为我在的路径中的特殊字符我项目 - 具体而言,与&符号&。我删除了&符号,然后一切都像魅力一样工作。

+1

谢谢,很好的解决方案。我的项目路径也有一个&,所以我重命名它,我的问题解决了。 –

+2

是的这个解决方案工作.. :) ..谢谢.. –

+1

啊!谢谢你,是的,upvoted这个答案! –

0

写这个原因可能有一天它会帮助某人 - 只是有同样的问题,并且(愚蠢的)问题是连接字符串上的主机名不好。

0

我的项目收到这个错误的命名约定。 MyProject.MyProject.Web,MyProject.MyProject.EntityFramework等

我改成了MyProject.MyProject2.Web等

0

我的项目文件夹路径有一个词Q & A.只要我改变对质量保证和重新运行迁移,这个问题已经消失。 避免项目路径中任何文件夹名称中的'&'字符。

相关问题