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 能看到
转载于:https://www.cnblogs.com/oceanho/p/4529715.html
AspNet.WebAPI.OData.ODataPQ实现WebAPI的分页查询服务-(个人拙笔)相关推荐
- 【转】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 ...
- 【WebAPI 验证】给 webapi加上token 验证(包括上传文件方法)
需要给网站开发对接EMI 接口,因此想通过Webapi 进行传递参数,但是由于该方法不太安全,因此不选用,但是记录下该方法的使用. 1,创建WEBAPI 项目,打开nuget 搜索并安装 Micros ...
- Mvc Webapi+Fiddler调试 (WebAPI 一)
Mvc Webapi+Fiddler调试 (WebAPI 一) Fiddler Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有 ...
- [JAVA EE] JPA 查询用法:自定义查询,分页查询
项目已上传:https://codechina.csdn.net/qq_36286039/javaee 自定义查询 问题:内置的crud功能不满足需求时如何添加自定义查询? 几种自定义查询方法 方法命 ...
- jpa分页查询_spring data jpa 居然提供了这么多查询方式!
spring data jpa提供了多种查询方式,如下: 方法名称查询 继承Repository接口 测试代码 方法名称中支持的关键字(官方文档提供) 使用JPA命名查询 在User实体中定义jpql ...
- Oracle中分页查询语句
Oracle分页查询语句使我们最常用的语句之一,下面就为您介绍的Oracle分页查询语句的用法,如果您对此方面感兴趣的话,不妨一看. Oracle分页查询语句基本上可以按照本文给出的格式来进行套用. ...
- Castle ActiveRecord学习(四)延迟加载、分页查询、where条件
一.延迟加载 //用户发布的主题,一对多:Table:外键表:ColumnKey:外键:Lazy:延迟加载:Cascade:级联操作(级联删除)[HasMany(typeof(ThemeInfo), ...
- 【sql】实现分页查询
分页查询,以五条五条查询为例: 代码实现: select * from goods_list LIMIT 0 , 5; 从第0条开始,查询五条
- java中的分页 效率考虑_面试官:数据量很大,分页查询很慢,有什么优化方案?...
当需要从数据库查询的表有上万条记录的时候,一次性查询所有结果会变得很慢,特别是随着数据量的增加特别明显,这时需要使用分页查询.对于数据库分页查询,也有很多种方法和优化的点. 下面简单说一下我知道的一些 ...
最新文章
- Java学习总结:1
- vue下实现textarea类似密码框的功能之探索input输入框keyup,keydown,input事件的触发顺序...
- Xshell:Xshell的简介、安装、使用方法之详细攻略
- 在wine里安装了IE6
- Runnable和Thread基础---多线程学习笔记(二)
- 如何注册鸿蒙id,鸿蒙系统真机调试证书 和 设备ID获取
- c#重写了窗体的OnKeyDown事件,但是不执行
- java 二进制as_Java中的二进制文本
- 云锵基金 2019 年 04 月简报
- TensorFlow 学习(四)—— computation graph
- jQuery放大镜插件
- 关于Java Web工程中web.xml文件
- c语言一个数平方表示,C语言 - 利用 汇编思想 写一个数的平方
- 2022年01月最新 | 全国网络安全等级测评与检测评估机构目录,新增6家,共计224家...
- 如何利用Python开发App?
- JAVA 查找PDF中落款单位所在页码及位置信息
- Swift版百思不得姐
- 37岁程序员被裁,120天没找到工作,无奈去小公司,结果蒙了
- 优酷android 离线 导出来,手机优酷缓存的视频如何导出 缓存视频导出到电脑方法...
- 在浏览器中使用百度地图的定位服务获得经纬度
热门文章
- 潜移默化学会WPF(绚丽篇)--热烈欢迎RadioButton,改造成功,改造成ImageButton,新版导航 - AYUI框架 - 博客园...
- HDU 1384 Intervals【差分约束-SPFA】
- 盒子模型,top和margin-top
- 搭建一个自己的SVN服务器
- Noi2001食物链-并查集
- 简单区分Vmware的三种网络连接模式(bridged、NAT、host-only)
- cadence -- FPM0.0.8.0生成skill工具集的方法
- URL跟Url的区别
- 0708---oop学习--用户密码管理
- 【code】Splay 模板