找不到方法:“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就可以了
-------------------------------
一開始想直接在伺服器上安裝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勾選是否複製,然後發布項目即可。