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 能看到
AspNet.WebAPI.OData.ODataPQ实现WebAPI的分页查询服务-(个人拙笔)的更多相关文章
- AspNet.WebAPI.OData.ODataPQ实现WebAPI的分页查询服务-(个人拙笔)(转)
出处:http://www.bubuko.com/infodetail-827612.html AspNet.WebAPI.OData.ODataPQ 这是针对 Asp.net WebAPI ODat ...
- AspNet.WebAPI.OData.ODataPQ
AspNet.WebAPI.OData.ODataPQ实现WebAPI的分页查询服务 AspNet.WebAPI.OData.ODataPQ实现WebAPI的分页查询服务-(个人拙笔) AspNet. ...
- 让Asp.net mvc WebAPI 支持OData协议进行分页查询操作
这是我在用Asp.net mvc WebAPI 支持 OData协议 做分页查询服务时的 个人拙笔. 代码已经开发到oschina上.有兴趣的朋友可以看看,欢迎大家指出不足之处. 看过了园子里的几篇关 ...
- OData武装你的WEBAPI-分页查询
本文属于OData系列 目录 武装你的WEBAPI-OData入门 武装你的WEBAPI-OData便捷查询 武装你的WEBAPI-OData分页查询 武装你的WEBAPI-OData资源更新 武装你 ...
- AspNet WebApi OData 学习
OData介绍:是一个查询和更新数据的Web协议.OData应用了web技术如HTTP.Atom发布协议(AtomPub)和JSON等来提供对不同应用程序,服务 和存储的信息访问.除了提供一些基本的操 ...
- 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 ...
- 基于Angular+WebAPI+OData的增删改查
对于在ASP.NET WebAPI中怎么使用OData,已经在我前面的日志中的说明, 在ASP.NET Web API中使用OData 在这个示例中.我新建了一个Order的实体,在前端使用Angul ...
- 主攻ASP.NET MVC4.0之重生:Asp.Net MVC WebApi OData
1.新建MVC项目,安装OData Install-Package Microsoft.AspNet.WebApi.OData -Version 4.0.0 2.新建WebAPI Controller ...
- [转]OData – the best way to REST–实例讲解ASP.NET WebAPI OData (V4) Service & Client
本文转自:http://www.cnblogs.com/bluedoctor/p/4384659.html 一.概念介绍 1.1,什么是OData? 还是看OData官网的简单说明: An open ...
随机推荐
- JavaHTTP下载视频
控制层类: package com.grab.video.controller; import java.io.BufferedOutputStream; import java.io.Buffere ...
- poj 2935 Basic Wall Maze
是一个图论的基础搜索题- 没什么好说的就是搜索就好 主要是别把 代码写的太屎,错了不好找 #include<cstdio> #include<algorithm> #inclu ...
- cygwin,在win中开发linux程序
cygwin,在win中开发linux程序 http://www.cygwin.cn/site/info/show.php?IID=1001 很多用windows的朋友不习惯于用linux的开发环境 ...
- JAVA 公众微信的开放源码项目管理合作伙伴招募的版本号
大家好: jeecg开源社区.现在正在进行"JAVA 开放源码的版本号项目微信公共账号"工作,有兴趣的朋友一起參与. 截止时间:20140510 採用技术: 1. JE ...
- HDU 4067 Random Maze
意甲冠军: 一个"随机图"它被定义为具有以下性质如: 一个入口和一个出口 有向图 对于入口 出度比入度大1 对于出口 入度比出度大1 对于其它点 入度等于出度 现给出一幅有向 ...
- 1号店Interview小结
三大范式: 为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中这种规则就称为范式.范式是符合某一种设计要求的总结.要想设计一个结构合理的关系型数据库,必须满足一定的范 ...
- FZU1669 Right-angled Triangle【毕达哥拉斯三元组】
主题链接: pid=1669">http://acm.fzu.edu.cn/problem.php?pid=1669 题目大意: 求满足以a.b为直角边,c为斜边,而且满足a + b ...
- POJ 3691 DNA repair 基于AC自己主动机DP
dp[i][j] 它表示的长度 i 下游前缀 j 更改节点的最小数量. 很清楚dp[0][0] = 0; dp[ i ][ j ] = min(dp[ i ][ j ],dp[i-1][k] + (j ...
- Unity3d C# Socket 下载文件 (同步到)
续篇 Unity3d C# HttpWebRequest 异步下载文件 ,由于project编译为IL2CPP的情况下仍然无效.提示HttpWebrequest 在当前版本号不支持.所以还是寻求其他的 ...
- HDU 2112 HDU Today (Dijkstra算法)
HDU Today Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...