在运行Virtuozzo虚拟机的Windows 2008 R2上,使用Entity Framework的ASP.NET MVC 4 Web引发异常
Method not found: 'Void System.Data.Objects.ObjectContextOptions.set_UseConsistentNullReferenceBehavior(Boolean)'
具有相同web.config的相同的 Web在使用Windows 2012的另一台(根)服务器上正常运行,当然在开发环境中本地运行。
我们正在使用.NET 4.0。堆栈跟踪的顶部如下:
[MissingMethodException:找不到方法:'Void System.Data.Objects.ObjectContextOptions.set_UseConsistentNullReferenceBehavior(Boolean)'。] System.Data.Entity.Internal.LazyInternalContext.InitializeContext()+ 0 System.Data.Entity.Internal.InternalContext.ExecuteSqlQuery(String sql,Object []参数)+34 System.Data.Entity.Internal.InternalContext.ExecuteSqlQueryAsIEnumerable(String sql,Object []参数)+91 System.Data.Entity.Internal.InternalContext.ExecuteSqlQuery(Type elementType,String sql,Object []参数)+250 System.Data.Entity.Internal.InternalSqlNonSetQuery.GetEnumerator()+34 System.Data.Entity.Internal.InternalSqlQuery
1.GetEnumerator() +28 System.Collections.Generic.List
1..ctor(IEnumerable1 collection) +382 System.Linq.Enumerable.ToList(IEnumerable
1 source)+80 [...]
我在Can anyone spot why I keep getting this error testing the EF 5 beta做了所有这些建议。没有旧的EF测试版的痕迹。我重新安装了.NET 4。
此错误在Google上很少见。
我还能尝试什么?
答案 0 :(得分:4)
我也碰到了这个问题,问题是我的工作站上安装了Entity Framework 4.1和5版本。这个特定的程序需要安装在运行.Net 4的服务器上,而不是4.5。 (由于其他原因,我们无法升级服务器。)但是,默认情况下,当我将ADO.Net实体数据模型添加到我的项目时,Visual Studio添加了对EF版本5的引用。
通过删除EF引用并手动将其添加回4.1版,它在服务器上成功运行。
您可能已经在服务器上安装了.Net 4.5来解决这个问题......