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

  • 相关阅读:
    UIButton 动态改变文本闪烁问题
    利用GDataXML解析XML文件
    限制键盘只能输入数字
    获得view所在的控制器
    使用Canvas绘制简单的时钟控件
    Spring整合ActiveMq消息队列
    Symmetric Key Encryption DES
    OSPF 高级实验
    OSPF 基础实验
    EIGRP 高级实验
  • 原文地址:https://www.cnblogs.com/oceanho/p/4529715.html
Copyright © 2020-2023  润新知