2014-06-05 53 views
3

我正處於基於EntityFramework,WebApi和Odata的開發項目中。將WebApi OData v3項目升級到OData v4

我開始這個項目時,OData v3是最新的,並創建了一些從EntitySetController派生的控制器。

我試圖升級我的項目支持的OData v4的使用從OData的團隊的最新版本。

有一些命名空間,並在第4版的NuGet包等改變。 http://blogs.msdn.com/b/webdev/archive/2014/03/13/getting-started-with-asp-net-web-api-2-2-for-odata-v4-0.aspx

我認爲我已經過去了這些問題,但看起來EntitySetController已從v4的代碼庫中刪除。 http://aspnetwebstack.codeplex.com/workitem/1715

什麼是升級我的代碼,最好的方法?

是已過時的EntitySetController類的代碼可用,這樣我可以把它變成我的項目?

回答

0

對於更新EntitySetController類,這裏是建議:

a。繼承ODataController代替EntitySetController

灣而不是void,用戶類型,HttpResponseMessage和CLR類型,從您的操作返回IQueryable,SingleResult,IHttpActionResult

希望它能幫上忙。

+1

感謝您的回覆。我決定創建一個新的WebApi項目,並使用您的建議重建所有現有的控制器。 不幸的是,我無法確定要安裝的一組正確的Nuget軟件包以支持OData V4。 OData V4是否仍需要WebstackNightly上的Web API 2.2的預發佈版本? 是否有OData V4所需的Nuget軟件包的名稱和來源列表? – AndyDBell

+0

僅在WebAPI 2.2(使用RTM版本的軟件包)之上實施OData V4的過程中。請注意:OData V4有一些奇怪的行爲atm。例如,$ metadata只能以XML格式提供,查詢結果(帶有$ select/$ expand)只能以JSON格式提供。 DataJS/BreezeJS的當前版本不符合V4(尚未)並且不能一起工作。 (預期的HTTP標題不同,WebAPI控制器/格式化程序使用的差異)。 –