AspNet.WebAPI.OData.ODataPQ实现WebAPI的分页查询服务-(个人拙笔)
?
AspNet.WebAPI.OData.ODataPQ
這是針對(duì) Asp.net WebAPI OData 協(xié)議下,查詢分頁(yè)。或者是說(shuō) 本人在使用Asp.Net webAPI 做服務(wù)接口時(shí)寫(xiě)的一個(gè)分頁(yè)查詢服務(wù)支持的擴(kuò)展庫(kù)。
它支持 MS Asp.Net WebAPI OData 協(xié)議下獲取記錄總數(shù)進(jìn)行分頁(yè)操作。
其實(shí),分頁(yè)真的簡(jiǎn)單,簡(jiǎn)單得不能再簡(jiǎn)單了。分頁(yè)總數(shù),每頁(yè)大小。就夠了,但是怎么都找不到?Asp.Net WebAPI OData 協(xié)議下獲取總記錄數(shù)的例子
或者找到例子,按照做了N遍,就是不行,總數(shù)就是不給我返回來(lái)。
對(duì)于獲取記錄總數(shù) 查閱了一些資料、比如 $inlinecount=allpages ,$count=true,經(jīng)歷了很長(zhǎng)時(shí)間的折騰。
要么就是 告訴我:不支持 $inlinecount查詢參數(shù),或者就是 不支持 $count 查詢參數(shù)。弄得我很是不舒服。多么好的OData,獲取一個(gè)記錄總數(shù)都那么難~~~(吐槽下,O(∩_∩)O~)。
?
在開(kāi)始使用它之前,先允許我對(duì)?AspNet.WebAPI.OData.ODataPQ?啰嗦幾句。
AspNet.WebAPI.OData.ODataPQ,是在Nuget.org的包名稱,也就是 ID,識(shí)別碼,在使用的時(shí)候可以通過(guò) ” 包控制臺(tái)命令窗口" 安裝、
PM -> Install-package?AspNet.WebAPI.OData.ODataPQ [-Version 5.2.2.1]
擴(kuò)展庫(kù)名實(shí)際是?ODataPQ.dll 這樣一個(gè)文件。
目前在 nuget 有2個(gè)版本。分別是(5.x ,4.x),具體情況見(jiàn)下面
?
5.2.2.1:最新版本(lasted version,有publicTokenKey)
5.2.2.0:最新版本(lasted version,無(wú)publicTokenKey)
這兩個(gè)版本,就是差一個(gè)?publicTokenKey ,建議用 5.2.2.1 這個(gè)版本。
如果你的WebAPI項(xiàng)目中的。Microsoft.AspNet.WebApi.OData,也就是引用中的?System.Web.Http.OData 程序集的版本。
是?5.2.2.0 及以上,建議使用這兩個(gè)版本中的其中一個(gè),不要使用下面4.X版本的庫(kù)
------------------------------------------------------------------------------------------------------------------------------------------
4.0.30507:(for 程序集 System.Web.Http.OData 4.0.30506版本?有publicTokenKey?)
4.0.30506:(for 程序集?System.Web.Http.OData 4.0.30506版本?無(wú)publicTokenKey?)
這兩個(gè)版本,就是差一個(gè)?publicTokenKey ,建議用 4.0.30507?這個(gè)版本。
如果你的WebAPI項(xiàng)目中的 Microsoft.AspNet.WebApi.OData,也就是引用中的?System.Web.Http.OData 程序集的版本。
是 4.0.30506?及以上,建議使用這兩個(gè)版本中的其中一個(gè),不要使用上面5.X版本的庫(kù)
-----------------------------------------------------------------------------------------------------------------------------------------
?
好,啰嗦完了后,下面開(kāi)始用它來(lái)實(shí)現(xiàn)最簡(jiǎn)單的服務(wù)(分頁(yè)查詢,\(^o^)/~)
?
第一步:
創(chuàng)建Asp.Net WebAPI項(xiàng)目,這就不多啰嗦了(。net4.0,.net4.5都可以)
?
第二步:
確認(rèn)你的?System.Web.Http.OData 程序集的版本,如果是?4.0.30506 ,安裝?ODataPQ?4.0.30507/4.0.30506
“?程序包管理控制臺(tái) ” :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
“?程序包管理控制臺(tái) ” :PM -> Install-Package ?AspNet.WebAPI.OData.ODataPQ [-Version?5.2.2.1]
?
第三步:
新建一個(gè)控制器,叫 ODataPQController,繼承自 ApiController 。加一個(gè)?Get action方法,在方法上標(biāo)記一下
OData.ODataPageResult。然后返回 IQueryable<TEntity> 對(duì)象。效果圖如下。
經(jīng)過(guò)以上的配置,ODataPQ的nuget包安裝以及服務(wù)器端代碼編寫(xiě)就算完成。
第四步:
查詢參數(shù)看看客戶端的效果。(查詢參數(shù) $filter,$top,$skip等等與OData協(xié)議一致。返回的數(shù)據(jù)中,包括了Data,total字段。這就是我們分頁(yè)要的東西:總記錄數(shù))
??
源代碼在:http://www.cnblogs.com/guizhouhehai/p/4524941.html?能看到
?
轉(zhuǎn)載于:https://www.cnblogs.com/oceanho/p/4529715.html
總結(jié)
以上是生活随笔為你收集整理的AspNet.WebAPI.OData.ODataPQ实现WebAPI的分页查询服务-(个人拙笔)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: android编程中setLayoutP
- 下一篇: loadrunner简单的例子(demo