具体错误是我建立控制器的时候出现如下图那样的错误:
Unable to cast object of type 'System.Data.Entity.Core.Objects.ObjectContext' to type'System.Data.ObjectContext'
出现该错误的原因是MVC支架不支持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未能将“XXXEntityFramework.5.0.0lib et45EntityFramework.dll”复制到“binEntityFramework.dll”。超出了重试计数 10。失败。
错误12无法将文件“XXXpackagesEntityFramework.5.0.0lib et45EntityFramework.dll”复制到“binEntityFramework.dll”。文件“binEntityFramework.dll”正由另一进程使用,因此该进程无法访问此文件。