Beispiel #1
0
        /// <summary>
        /// 进行指定的分页操作。
        ///
        /// 如果分页信息指定了要统计所有的行数,则立刻执行 Count 方法获取所有行数。
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="models">The models.</param>
        /// <param name="pagingInfo">The paging information.</param>
        /// <returns></returns>
        /// <exception cref="System.ArgumentOutOfRangeException">索引不能是负数。</exception>
        public static IEnumerable <T> JumpToPage <T>(this IEnumerable <T> models, PagingInfo pagingInfo)
        {
            //假如这个是空的,就不需要分页
            if (PagingInfo.IsNullOrEmpty(pagingInfo))
            {
                return(models);
            }
            if (pagingInfo.PageNumber < 1)
            {
                throw new ArgumentOutOfRangeException("索引不能是负数。");
            }

            //需要记数
            if (pagingInfo.IsNeedCount)
            {
                pagingInfo.TotalCount = models.LongCount();
            }

            if (pagingInfo.PageNumber == 1)
            {
                return(models.Take(pagingInfo.PageSize));
            }

            return(models
                   .Skip((int)(pagingInfo.PageNumber - 1) * pagingInfo.PageSize)
                   .Take(pagingInfo.PageSize));
        }
Beispiel #2
0
        /// <summary>
        /// 进行指定的分页操作。
        ///
        /// 如果分页信息指定了要统计所有的行数,则立刻执行 Count 方法获取所有行数。
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="models">The models.</param>
        /// <param name="pagingInfo">The paging information.</param>
        /// <returns></returns>
        /// <exception cref="System.ArgumentOutOfRangeException">索引不能是负数。</exception>
        public static IQueryable <T> JumpToPage <T>(this IQueryable <T> models, PagingInfo pagingInfo)
        {
            //假如分页信息为空,直接返回,不需要分页。
            if (PagingInfo.IsNullOrEmpty(pagingInfo))
            {
                return(models);
            }
            if (pagingInfo.PageNumber < 1)
            {
                throw new ArgumentOutOfRangeException("索引不能是负数。");
            }

            //需要记数
            if (pagingInfo.IsNeedCount)
            {
                pagingInfo.TotalCount = models.Count();
            }

            if (pagingInfo.PageNumber == 1)
            {
                return(models.Take(pagingInfo.PageSize));
            }

            return(models
                   .Skip((pagingInfo.PageNumber - 1) * pagingInfo.PageSize)
                   .Take(pagingInfo.PageSize));
        }