温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

我使用Asp.net MVC WebAPI支持OData协议进行分页操作的笔记(第一篇)

发布时间:2020-07-18 18:06:33 来源:网络 阅读:1468 作者:点儿都不扯 栏目:编程语言


OData协议、多么牛B的技术、


    传统的分页写习惯了,最近项目中,用到了 Asp.net WebAPI 2.0来做数据交互接口、至于为什么要使用WebAPI,我想只要是对OData协议有了解的朋友。只要说到WebAPI都会想到这个,如果你想对它有更多的深入了解。可以移步博客园(张善友大师)的介绍。 URL(http://www.cnblogs.com/shanyou/archive/2010/03/26/1697316.html)


    微软 5.5.2.0 的 System.Web.OData.dll、不支持$inlinecount的查询、目前我也尚未找到关于Asp.net WebAPI支持OData协议的分页解决方案(如果有朋友知道,方便的话,请与我分享、十分感谢!)


    为此,要做分页查询,我们必须自己来写一个分页查询的程序(Filter)、要支持OData协议,必须要用好微软提供的OData 支持类库、因为只有支持$filter,$orderby的这些操作。我们自己写的分页才会有意义,如果不支持OData协议的这些查询操作。查询帅选等等。那就与传统的数据交互接口一样,就失去了WebAPI支持OData协议的真正意义啦。反正,我用过OData协议一些接口,我是觉得非常的方便,扩展性也很好。应该说WebAPI会是以后的一个很不错的服务接口解决方案、


    分页都需要什么?

    分页包含几要素:记录总条数,每页数量,总页数,当前页,数据列表。这差不多就是一个分页结果需要包括的5要素吧。其实对于分页来讲,服务端需要返回的数据。就只有两个。

第一:总记录条数。总记录条数,必须要服务器端返回,然后客户端可以通过自己的分页定义,来计算出总分页数,客户端保存自己的当前页码等等。

第二:数据列表。这个必须要服务端返回吧(不述了)。


    好,那下面,我们就先做第一件事儿,定义分页对象返回结果对象。是的,正如你想象的一样,非常简单,就两个属性而已。

    /// <summary>
    /// 定义一个分页数据返回对象
    /// -------------------------------
    /// Add by hotboy 2015-5-13 11:21:49
    /// </summary>
    public class ODataPagedResult
    {
        internal ODataPagedResult(object data, int total)
        {
            this._data = data;
            this._total = total;
        }

        private object _data;
        /// <summary>
        /// Get the Data object
        /// </summary>
        public object Data
        {
            get { return this._data; }
            private set { this._data = value; }
        }

        private int _total;
        /// <summary>
        /// Get the total count
        /// </summary>
        public int Total
        {
            get { return this._total; }
            private set { this._total = value; }
        }
    }

从下一篇开始,我们将一起探讨OData协议的 Asp.net WebAPI具体的分页实现代码。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI