示例#1
0
        /// <summary>
        /// 执行分页
        /// </summary>
        /// <param name="query">查询对象</param>
        /// <param name="paging">分页对象</param>
        public IPagingBusinessResponse <ICollection <T> > ExecutePage(IQueryable <T> query, Paging paging)
        {
            var result = new PagingBusinessResponse <ICollection <T> >
            {
                Data = query.Skip((paging.PageIndex - 1) * paging.PageSize).Take(paging.PageSize).ToList()
            };

            paging.Total = query.FutureCount().Value;

            paging.PageSize = paging.PageSize;

            paging.PageIndex = paging.PageIndex;

            result.Paging = paging;

            return(result);
        }
示例#2
0
        /// <summary>
        /// 执行分页
        /// <para>返回传入的类型</para>
        /// </summary>
        /// <typeparam name="Tout">返回的类型</typeparam>
        /// <param name="query">当前的查询对象</param>
        /// <param name="paging">分页参数</param>
        /// <param name="selectExpression">查询表达式</param>
        /// <returns></returns>
        public IPagingBusinessResponse <ICollection <Tout> > ExecutePage <Tout>(IQueryable <T> query, Paging paging, Expression <Func <T, Tout> > selectExpression)
        {
            var result = new PagingBusinessResponse <ICollection <Tout> >
            {
                Data = query.Select(selectExpression).Skip((paging.PageIndex - 1) * paging.PageSize).Take(paging.PageSize).ToList()
            };

            // paging.Total = query.FutureCount().Value;

            paging.Total = query.Count();

            paging.PageSize = paging.PageSize;

            paging.PageIndex = paging.PageIndex;

            paging.PageCount = (int)Math.Ceiling((float)paging.Total / paging.PageSize);

            result.Paging = paging;

            return(result);
        }