找不到方法:“Void System.Data.Objects.ObjectContextOptions.set_UseConsistentNullReferenceBehavior(Boolean)”。
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.MissingMethodException: 找不到方法:“Void System.Data.Objects.ObjectContextOptions.set_UseConsistentNullReferenceBehavior(Boolean)”。
问题原因:
D:Program FilesMicrosoft Visual Studio 11.0Common7IDEExtensionsMicrosoftEntity Framework ToolsNuGet PackagesEntityFramework.5.0.0lib
有两个版本 net40 和 net45 , 用net40就可以了
-------------------------------
一开始想直接在服务器上安装Framework 4.5.下载安装包运行后提示:该操作系统不支持
没办法,只能通过修改代码解决了.
其实解决方法很简单,主要问题是:虽然各个类库项目的编译版本选择了Framework4.0,但是EF在引用时的EntityFramework.dll是针对4.5版本的.因此我们只要引用正确的dll即可.
我的VS2012安装在C盘,因此EntityFramework.dll的地方在C:/Program Files (x86)/Microsoft Web Tools/Packages/EntityFramework.5.0.0/lib/ ,里面有net40和net45,net40自然是在Framework4.0下使用的了.
在EF的项目中应用这个dll,编译部署. 运行成功!!
注:同时修改web.config
<!--<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
</entityFramework>-->
<!--<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />-->