找不到方法:“Void System.Data.Objects.ObjectContextOptions.set_UseConsistentNullReferenceBehavior(Boolean)

时间:2022-06-25 21:05:03

找不到方法:“Void System.Data.Objects.ObjectContextOptions.set_UseConsistentNullReferenceBehavior(Boolean)”。

说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 
异常详细信息: System.MissingMethodException: 找不到方法:“Void System.Data.Objects.ObjectContextOptions.set_UseConsistentNullReferenceBehavior(Boolean)”。

问题原因:

D:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\NuGet Packages\EntityFramework.5.0.0\lib

有两个版本 net40 和 net45 ,  用net40就可以了

找不到方法:“Void System.Data.Objects.ObjectContextOptions.set_UseConsistentNullReferenceBehavior(Boolean)找不到方法:“Void System.Data.Objects.ObjectContextOptions.set_UseConsistentNullReferenceBehavior(Boolean)

-------------------------------

一开始想直接在服务器上安装Framework 4.5.下载安装包运行后提示:windows 2003操作系统不支持

没办法,只能通过修改代码解决了.

其实解决方法很简单,主要问题是:虽然各个类库项目的编译版本选择了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下使用的了.

关于windows 2003不支持Framework4.5开发的项目,我的方法是修改webconfig目标框架4.5=>4.0,然后将项目所需4.5的dll勾选是否复制,然后发布项目即可。