這是我第一次嘗試使用breeze.js,所以我可能有不正確的設置,但不知道它是什麼。ODataActionFilter被調用兩次
執行簡單查詢時遇到錯誤。我在VS2012項目中首先使用EF 5.0 DB。
發生錯誤。 值不能爲空。參數名稱:源 System.ArgumentNullException 在System.Linq.Queryable.Where [TSource](IQueryable的1 source, Expression
1謂詞)在lambda_method(封閉,IQueryable的)在Breeze.WebApi.ODataActionFilter.OnActionExecuted(HttpActionExecutedContext actionExecutedContext)在的System.Web .Http.Filters.ActionFilterAttribute.CallOnActionExecuted(HttpActionContext actionContext,HttpResponseMessage響應,異常異常)在System.Web.Http.Filters.ActionFilterAttribute。 <> c_ DisplayClass2.b _0(HttpResponseMessage response)at System.Threading.Tasks.TaskHelpersExtensions。 <> c__DisplayClass41 2.<Then>b__40(Task
1噸)在System.Threading.Tasks.TaskHelpersExtensions.ThenImpl [TTask,TOuterResult](TTask任務,Func`2延續,的CancellationToken的CancellationToken,布爾runSynchronously)
在試圖確定什麼我做錯了,我下載了breeze服務器的源代碼,並將該項目包含在解決方案中,以便我可以跟蹤錯誤。該錯誤發生在ODataActionFilter.cs中的OnActionExecuted事件中。奇怪的是,對於同一個查詢,該函數被調用兩次。該函數首先用responseObject中的查詢調用。第二次調用該事件時,查詢的結果位於responseObject中。這不再是導致錯誤的iQueryable對象。我無法確定爲什麼函數在第二次調用時已經具有正確的結果。
有沒有人看過這個之前,可以告訴我指向一個方向來解決它?
謝謝
我已經看到了......但猜測你的原因是沒用的。如果您提供更多信息,我可能會提供幫助。你是怎麼到這裏來的?你是否從MVC 4 SPA模板開始[可能有問題]?或者其他一些模板?你安裝了哪個NuGet軟件包?你創建了自己的模型和控制器嗎?如果是這樣,什麼屬性(S)裝飾控制器? – Ward
病房。在我發佈下面的答案之前,我沒有注意到您的回覆。儘管我沒有閱讀你的回覆就能解決它,但你的建議是正確的。我沒有在api控制器上使用必要的屬性。謝謝。 – tsdude