AspNet.WebAPI.OData.ODataPQ

AspNet.WebAPI.OData.ODataPQ实现WebAPI的分页查询服务

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

这是针对 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字段。这就是我们分页要的东西。总数。)

  

更多可以参考下我(项目源码已经在oschina上开源)另一篇拙笔。

http://www.cnblogs.com/guizhouhehai/p/4524941.html

标签: AspNet.WebAPI.OData.ODataPQ

时间: 2024-08-06 15:41:26

AspNet.WebAPI.OData.ODataPQ的相关文章

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遍,就是

AspNet WebApi 中应用fo-dicom抛出异常:No codec registered for tranfer syntax:

背景: 在做一个Dicom Web Service, 其中WADO-RS中需要解析TransferSyntax, 然后就用到了fo-dicom中的DicomFile.ChangeTransferSyntax方法. 代码类似: var df = DicomFile.Open(samplesDir + @"\User Submitted\overlays.dcm"); df = df.ChangeTransferSyntax(DicomTransferSyntax.JPEG2000Loss

AspNet WebApi: 了解下HttpControllerDispatcher,控制器的创建和执行

HttpControllerDispatcher作为ASPNET WEB API消息处理管道中重要的部分,负责最后控制器系统的激活,action方法的执行,以及最后的响应生成. HtppControllerDispatcher继承HttpMessageHandler,重载了sendAsync方法. } public class HttpControllerDispatcher : HttpMessageHandler { //some protected override async Task<

OData – the best way to REST–实例讲解ASP.NET WebAPI OData (V4) Service &amp; Client

http://www.midifan.com/moduleuser-index-429222.htmhttp://www.midifan.com/moduleuser-index-429138.htmhttp://www.midifan.com/moduleuser-index-429322.htmhttp://www.midifan.com/moduleuser-index-429245.htmhttp://www.midifan.com/moduleuser-index-429412.htm

[转]OData/WebApi

本文转自:https://github.com/OData/WebApi/tree/vNext OData Web API Introduction OData Web API (i.e., ASP.NET Web API OData) is a server library built upon ODataLib and Web API. Project structure The master branch has the following libraries, and the packa

Odata简介和Demo

转:http://www.cnblogs.com/shanyou/archive/2013/06/11/3131583.html 在SOA的世界中,最重要的一个概念就是契约(contract).在云计算的世界中,有关通信的最重要的概念也是契约.XML具有强大对数据的描述能力,Atom格式和AtomPub都建立在XML之上,在Google和微软的推动下,也已经成为标准.但是,Atom/AtomPub和ODBC/OLEDB这样的真正数据交互协议相比较,还有着根本上的欠缺:缺乏数据类型的具体描述,降低

[水煮 ASP.NET Web API2 方法论](12-1)创建 OData

问题 怎样用在 Web API 中创建 OData 服务. 解决方案 对于我们来说,在 Web API 中使用 OData最简单的方式就是使用 ASP.NET 模板来创建Odata Controller.在 Controllers 文件夹上鼠标右键->添加->新建项. 显示一个如图 12-1 的对话框,在这里我们可以选择两个 "Web API 2 OData" 相关的模板.Vistual Studio 将会生成相关的 OData Controller,同时,从 NuGet

[转]ASP.NET Web API对OData的支持

http://www.cnblogs.com/shanyou/archive/2013/06/11/3131583.html 在SOA的世界中,最重要的一个概念就是契约(contract).在云计算的世界中,有关通信的最重要的概念也是契约.XML具有强大对数据的描述能力,Atom格式和AtomPub都建立在XML之上,在Google和微软的推动下,也已经成为标准.但是,Atom/AtomPub和ODBC/OLEDB这样的真正数据交互协议相比较,还有着根本上的欠缺:缺乏数据类型的具体描述,降低了交

ODATA WEB API扩展使用

一.概述 时间也算充足,抽点时间总结下OData的常用的使用方式,开放数据协议(OData)是一个查询和更新数据的Web协议.OData应用了web技术如HTTP.Atom发布协议(AtomPub)和JSON等来提供对不同应用程序,服务和存储的信息访问.除了提供一些基本的操作(像增删改查),也提供了一些高级的操作类似过滤数据和实体的导航.OData扩展了上述的协议但是不是取代他们.他可以被XML(ATOM)或者JSON取代但是OData的重要在于它符合REST原则.在某种意义上,它建立在'简单'