日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

AspNet.WebAPI.OData.ODataPQ实现WebAPI的分页查询服务-(个人拙笔)

發(fā)布時(shí)間:2024/4/14 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AspNet.WebAPI.OData.ODataPQ实现WebAPI的分页查询服务-(个人拙笔) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

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)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。