ASP.NET MVC4应用程序无法建立控制器的解决方案
具体错误是我建立控制器的时候出现如下图那样的错误:
Unable to cast object of type 'System.Data.Entity.Core.Objects.ObjectContext' to type'System.Data.ObjectContext'
出现该错误的原因是MVC4支架不支持entity framework6.
当然这原因是我今天刚升级完VS2012到update 4RC才知道的。
解决方案很简单。就是安装VS2013或者把entity framework 6降级。我当然选后者。把entity framework 6卸载后,可以到 NuGet Gallery | EntityFramework 这里找到其历史版本。根据你需要的版本在 Package Manager Console (工具-库程序包管理器-程序包管理控制台)那里输入对应的命令就好了,它会自动在你项目安装那些组件的,前提是网络通畅。安装EF5.0.0就是输入如下命令.
Install-Package EntityFramework -Version 5.0.0
然后还有一个问题,就是控制器建立好后要把原来bin文件夹里的EntityFramework.dll用新安装的版本的dll去覆盖它,这样才能调试成功。不然会出现如下2个错误。
错误 11 未能将“XXX\EntityFramework.5.0.0\lib\net45\EntityFramework.dll”复制到“bin\EntityFramework.dll”。超出了重试计数 10。失败。
错误 12 无法将文件“XXX\packages\EntityFramework.5.0.0\lib\net45\EntityFramework.dll”复 制到“bin\EntityFramework.dll”。文件“bin\EntityFramework.dll”正由另一进程使用,因此该进程无法访 问此文件。