/// <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); }
/// <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); }