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 能看到

转载于:https://www.cnblogs.com/oceanho/p/4529715.html

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

  1. 【转】OData – the best way to REST–实例讲解ASP.NET WebAPI OData (V4) Service Client

    一.概念介绍 1.1,什么是OData? 还是看OData官网的简单说明: An open protocol to allow the creation and consumption of quer ...

  2. 【WebAPI 验证】给 webapi加上token 验证(包括上传文件方法)

    需要给网站开发对接EMI 接口,因此想通过Webapi 进行传递参数,但是由于该方法不太安全,因此不选用,但是记录下该方法的使用. 1,创建WEBAPI 项目,打开nuget 搜索并安装 Micros ...

  3. Mvc Webapi+Fiddler调试 (WebAPI 一)

    Mvc Webapi+Fiddler调试 (WebAPI 一) Fiddler Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有 ...

  4. [JAVA EE] JPA 查询用法:自定义查询,分页查询

    项目已上传:https://codechina.csdn.net/qq_36286039/javaee 自定义查询 问题:内置的crud功能不满足需求时如何添加自定义查询? 几种自定义查询方法 方法命 ...

  5. jpa分页查询_spring data jpa 居然提供了这么多查询方式!

    spring data jpa提供了多种查询方式,如下: 方法名称查询 继承Repository接口 测试代码 方法名称中支持的关键字(官方文档提供) 使用JPA命名查询 在User实体中定义jpql ...

  6. Oracle中分页查询语句

    Oracle分页查询语句使我们最常用的语句之一,下面就为您介绍的Oracle分页查询语句的用法,如果您对此方面感兴趣的话,不妨一看. Oracle分页查询语句基本上可以按照本文给出的格式来进行套用. ...

  7. Castle ActiveRecord学习(四)延迟加载、分页查询、where条件

    一.延迟加载 //用户发布的主题,一对多:Table:外键表:ColumnKey:外键:Lazy:延迟加载:Cascade:级联操作(级联删除)[HasMany(typeof(ThemeInfo), ...

  8. 【sql】实现分页查询

    分页查询,以五条五条查询为例: 代码实现: select * from goods_list LIMIT 0 , 5; 从第0条开始,查询五条

  9. java中的分页 效率考虑_面试官:数据量很大,分页查询很慢,有什么优化方案?...

    当需要从数据库查询的表有上万条记录的时候,一次性查询所有结果会变得很慢,特别是随着数据量的增加特别明显,这时需要使用分页查询.对于数据库分页查询,也有很多种方法和优化的点. 下面简单说一下我知道的一些 ...

最新文章

  1. Java学习总结:1
  2. vue下实现textarea类似密码框的功能之探索input输入框keyup,keydown,input事件的触发顺序...
  3. Xshell:Xshell的简介、安装、使用方法之详细攻略
  4. 在wine里安装了IE6
  5. Runnable和Thread基础---多线程学习笔记(二)
  6. 如何注册鸿蒙id,鸿蒙系统真机调试证书 和 设备ID获取
  7. c#重写了窗体的OnKeyDown事件,但是不执行
  8. java 二进制as_Java中的二进制文本
  9. 云锵基金 2019 年 04 月简报
  10. TensorFlow 学习(四)—— computation graph
  11. jQuery放大镜插件
  12. 关于Java Web工程中web.xml文件
  13. c语言一个数平方表示,C语言 - 利用 汇编思想 写一个数的平方
  14. 2022年01月最新 | 全国网络安全等级测评与检测评估机构目录,新增6家,共计224家...
  15. 如何利用Python开发App?
  16. JAVA 查找PDF中落款单位所在页码及位置信息
  17. Swift版百思不得姐
  18. 37岁程序员被裁,120天没找到工作,无奈去小公司,结果蒙了
  19. 优酷android 离线 导出来,手机优酷缓存的视频如何导出 缓存视频导出到电脑方法...
  20. 在浏览器中使用百度地图的定位服务获得经纬度

热门文章

  1. 潜移默化学会WPF(绚丽篇)--热烈欢迎RadioButton,改造成功,改造成ImageButton,新版导航 - AYUI框架 - 博客园...
  2. HDU 1384 Intervals【差分约束-SPFA】
  3. 盒子模型,top和margin-top
  4. 搭建一个自己的SVN服务器
  5. Noi2001食物链-并查集
  6. 简单区分Vmware的三种网络连接模式(bridged、NAT、host-only)
  7. cadence -- FPM0.0.8.0生成skill工具集的方法
  8. URL跟Url的区别
  9. 0708---oop学习--用户密码管理
  10. 【code】Splay 模板