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的分页查询服务-(个人拙笔)的更多相关文章

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

    出处:http://www.bubuko.com/infodetail-827612.html AspNet.WebAPI.OData.ODataPQ 这是针对 Asp.net WebAPI ODat ...

  2. AspNet.WebAPI.OData.ODataPQ

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

  3. 让Asp.net mvc WebAPI 支持OData协议进行分页查询操作

    这是我在用Asp.net mvc WebAPI 支持 OData协议 做分页查询服务时的 个人拙笔. 代码已经开发到oschina上.有兴趣的朋友可以看看,欢迎大家指出不足之处. 看过了园子里的几篇关 ...

  4. OData武装你的WEBAPI-分页查询

    本文属于OData系列 目录 武装你的WEBAPI-OData入门 武装你的WEBAPI-OData便捷查询 武装你的WEBAPI-OData分页查询 武装你的WEBAPI-OData资源更新 武装你 ...

  5. AspNet WebApi OData 学习

    OData介绍:是一个查询和更新数据的Web协议.OData应用了web技术如HTTP.Atom发布协议(AtomPub)和JSON等来提供对不同应用程序,服务 和存储的信息访问.除了提供一些基本的操 ...

  6. 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 ...

  7. 基于Angular+WebAPI+OData的增删改查

    对于在ASP.NET WebAPI中怎么使用OData,已经在我前面的日志中的说明, 在ASP.NET Web API中使用OData 在这个示例中.我新建了一个Order的实体,在前端使用Angul ...

  8. 主攻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 ...

  9. [转]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 ...

随机推荐

  1. 无阻塞情况connect生产EINPROGRESS错

    今天的游戏开发client测试程序,非常多,因为出现client.后connect成功.代码证recv系统调用.后来发现,可能是由于socket默认模式被阻止,这将使很多client 接处于链接却不能 ...

  2. 39一个可以让你受益HTML5课程

    事不宜迟,本文作者是我们收集的在线学习HTML5资源.我们希望他们能够帮助你更好地学习HTML5. 不错啊! 只,说原作者40一个只有39一.由于第一5钍和8一是重复. 原文在此! 1. 五分钟入门H ...

  3. Hello ASP.NET5

    2015年11月30日, ASP.NET 5 RC1 已经发布,本文尝试了一下ASP.NET5项目的创见一发布到IIS.开发环境,win10 64位,visual studio2015(已更新upda ...

  4. Objective-C路成魔【11-多态性、动态类型和动态绑定】

    郝萌主倾心贡献.尊重作者的劳动成果,请勿转载. 假设文章对您有所帮助,欢迎给作者捐赠.支持郝萌主.捐赠数额任意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源代码下载:点我传送 多态这个其 ...

  5. ORA-01791: not a SELECTed expression 一种是不 bug 的 bug!

    [ora11@lixora ~]$ !sql sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Production on Wed Aug 27 09: ...

  6. WP8关于对地图开发的改进

    原文:WP8关于对地图开发的改进 微软在2012年6月21日 发布了 Windows Phone 8的更新.带来大量的功能更新和全新的SDK.作为重头戏的部分是引入了 C++ 和 DirectX,支持 ...

  7. SQL 2008 SP2 找不到SQL Server Engine

    原文:SQL 2008 SP2 找不到SQL Server Engine 最近我有个客户碰到一个很奇怪的问题.他安装SQL server 2008 SP2的时候, SP2的安装程序无法找到SQL se ...

  8. netback于kthread遇到cpu affinity问题

    最近的升级netback, 在测试过程中,查找vm全双工压力,rx的pps波动很厉害,见rx kthread尽管cpu affinity它是0-7 (dom0 8vcpu), 但往往,她去了物理破坏c ...

  9. Redis系列之(一):10分钟玩转Redis(转)

    1. Redis介绍 Redis是一个开源的使用ANSI C语言编写.基于内存的Key-Value数据库. 它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集 ...

  10. QlikView线图高亮选择尺寸

    作为标题,如今,学生问我一个问题.尺寸Month.expression它是Count(Id). 这个图是一个折线图,不管你选择哪个月的其他下拉列表,销售量.由于Expression里面是这样写的 Co ...