/// <summary> /// 执行分页_动态操作 /// </summary> /// <param name="where">查询条件</param> /// <param name="orderLambda">排序表达式</param> /// <param name="codeOrderType">排序方式</param> /// <param name="paging">分页参数</param> /// <param name="selectExpression">动态类型</param> /// <returns></returns> public IPagingBusinessResponse <dynamic> ExecutePage_Dynamic <TKey>(Expression <Func <T, bool> > where, Expression <Func <T, TKey> > orderLambda, CodeOrderType codeOrderType, Paging paging, Expression <Func <T, dynamic> > selectExpression) { var query = this.GetQueryable(where); if (codeOrderType == CodeOrderType.Asc) { query = query.OrderBy(orderLambda); } else if (codeOrderType == CodeOrderType.Desc) { query = query.OrderByDescending(orderLambda); } var result = new PagingBusinessResponse <dynamic> { Data = query.Select(selectExpression).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> /// 执行分页 /// </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> /// <param name="query">查询对象</param> /// <param name="paging">分页对象</param> /// <param name="selectExpression">动态表达式</param> public IPagingBusinessResponse <dynamic> ExecutePage_Dynamic(IQueryable <T> query, Paging paging, Expression <Func <T, dynamic> > selectExpression) { var result = new PagingBusinessResponse <dynamic> { Data = query.Select(selectExpression).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); }