AspNet.WebAPI.OData.ODataPQ實現WebAPI的分頁查詢服務-(個人拙筆)


 

AspNet.WebAPI.OData.ODataPQ

這是針對 Asp.net WebAPI OData 協議下,查詢分頁。或者是說 本人在使用Asp.Net webAPI 做服務接口時寫的一個分頁查詢服務支持的擴展庫。

它支持 MS Asp.Net WebAPI OData 協議下獲取記錄總數進行分頁操作。

其實,分頁真的簡單,簡單得不能再簡單了。分頁總數,每頁大小。就夠了,但是怎么都找不到 Asp.Net WebAPI OData 協議下獲取總記錄數的例子

或者找到例子,按照做了N遍,就是不行,總數就是不給我返回來。

對於獲取記錄總數 查閱了一些資料、比如 $inlinecount=allpages ,$count=true,經歷了很長時間的折騰。

要么就是 告訴我:不支持 $inlinecount查詢參數,或者就是 不支持 $count 查詢參數。弄得我很是不舒服。多么好的OData,獲取一個記錄總數都那么難~~~(吐槽下,O(∩_∩)O~)。

 

在開始使用它之前,先允許我對 AspNet.WebAPI.OData.ODataPQ 啰嗦幾句。

AspNet.WebAPI.OData.ODataPQ,是在Nuget.org的包名稱,也就是 ID,識別碼,在使用的時候可以通過 ” 包控制台命令窗口" 安裝、

PM -> Install-package AspNet.WebAPI.OData.ODataPQ [-Version 5.2.2.1]

擴展庫名實際是 ODataPQ.dll 這樣一個文件。

目前在 nuget 有2個版本。分別是(5.x ,4.x),具體情況見下面

 

5.2.2.1:最新版本(lasted version,有publicTokenKey)

5.2.2.0:最新版本(lasted version,無publicTokenKey)

這兩個版本,就是差一個 publicTokenKey ,建議用 5.2.2.1 這個版本。

如果你的WebAPI項目中的。Microsoft.AspNet.WebApi.OData,也就是引用中的 System.Web.Http.OData 程序集的版本。

是 5.2.2.0 及以上,建議使用這兩個版本中的其中一個,不要使用下面4.X版本的庫

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

4.0.30507:(for 程序集 System.Web.Http.OData 4.0.30506版本 有publicTokenKey )

4.0.30506:(for 程序集 System.Web.Http.OData 4.0.30506版本 無publicTokenKey )

這兩個版本,就是差一個 publicTokenKey ,建議用 4.0.30507 這個版本。

如果你的WebAPI項目中的 Microsoft.AspNet.WebApi.OData,也就是引用中的 System.Web.Http.OData 程序集的版本。

是 4.0.30506 及以上,建議使用這兩個版本中的其中一個,不要使用上面5.X版本的庫

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

 

好,啰嗦完了后,下面開始用它來實現最簡單的服務(分頁查詢,\(^o^)/~)

 

第一步:

  創建Asp.Net WebAPI項目,這就不多啰嗦了(。net4.0,.net4.5都可以)

 

第二步:

  確認你的 System.Web.Http.OData 程序集的版本,如果是 4.0.30506 ,安裝 ODataPQ 4.0.30507/4.0.30506

  “ 程序包管理控制台 ” :PM -> Install-Package  AspNet.WebAPI.OData.ODataPQ -Version 4.0.30507  

  如果 System.Web.Http.OData  是 5.2.2.0及以上 ,安裝 ODataPQ 5.2.2.1/5.2.2.0

  “ 程序包管理控制台 ” :PM -> Install-Package  AspNet.WebAPI.OData.ODataPQ [-Version 5.2.2.1]

 

第三步:

  新建一個控制器,叫 ODataPQController,繼承自 ApiController 。加一個 Get action方法,在方法上標記一下

  OData.ODataPageResult。然后返回 IQueryable<TEntity> 對象。效果圖如下。

  

  經過以上的配置,ODataPQ的nuget包安裝以及服務器端代碼編寫就算完成。

第四步:

  查詢參數看看客戶端的效果。(查詢參數 $filter,$top,$skip等等與OData協議一致。返回的數據中,包括了Data,total字段。這就是我們分頁要的東西:總記錄數)

  

  

源代碼在:http://www.cnblogs.com/guizhouhehai/p/4524941.html 能看到

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM