public virtual PageResult <dynamic> PageFind <TOrderByKey>(int pageIndex, int pageSize, Expression <Func <T, bool> > whereQuery, QueryableOrderEntry <T, TOrderByKey> orderQuery, Expression <Func <T, dynamic> > selector = null) { List <dynamic> data = new List <dynamic>(); IRepository <T> repository = DalContext.Repository <T>(); var query = repository.TableNoTracking.Where(whereQuery); int count = query.Count(); if (orderQuery.OrderDirection == OrderDirection.DESC) { query = query.OrderByDescending(orderQuery.Expression); } else { query = query.OrderBy(orderQuery.Expression); } if (selector != null) { data = query.Select(selector).Skip(pageSize * pageIndex).Take(pageSize).ToList(); } else { data = query.Skip(pageSize * pageIndex).Take(pageSize).ToList <dynamic>(); } return(new PageResult <dynamic> { ItemCount = count, Data = data }); }
public virtual PageResult <TResult> PageData <TResult, TOrderKey>(int pageIndex, int pageSize, Expression <Func <TResult, bool> > whereQuery, QueryableOrderEntry <TResult, TOrderKey> orderQuery, Expression <Func <T, TResult> > selector) { List <TResult> data = new List <TResult>(); var query = DalContext.Repository <T>().TableNoTracking.Select(selector).Where(whereQuery); int count = query.Count(); if (orderQuery.OrderDirection == OrderDirection.DESC) { query = query.OrderByDescending(orderQuery.Expression); } else { query = query.OrderBy(orderQuery.Expression); } data = query.Skip(pageSize * pageIndex).Take(pageSize).ToList(); return(new PageResult <TResult> { ItemCount = count, Data = data }); }
/// <summary> /// linq 分页 /// </summary> /// <typeparam name="TKey"></typeparam> /// <param name="whereQuery">条件</param> /// <param name="orderQuery">排序</param> /// <param name="pageID">页码</param> /// <param name="pageSizes">每页条数</param> /// /// <param name="selector">查询字段 默认 为空 全部</param> /// <returns></returns> public virtual PagedynamicResult <dynamic> GetLinqPage <TKey>(Expression <Func <T, bool> > whereQuery, QueryableOrderEntry <T, TKey> orderQuery, int pageID, int pageSizes, Expression <Func <T, dynamic> > selector = null) { // pageID = pageID < 1 ? 0 : pageID - 1; List <dynamic> data = new List <dynamic>(); IRepository <T> repository = DalContext.Repository <T>(); var query = repository.TableNoTracking.Where(whereQuery); int count = query.Count(); if (selector != null) { if (orderQuery.OrderDirection == OrderDirection.DESC) { data = query.OrderByDescending(orderQuery.Expression).Select(selector) .Skip(pageSizes * pageID) .Take(pageSizes).ToList(); } else { data = query .OrderBy(orderQuery.Expression).Select(selector) .Skip(pageSizes * pageID) .Take(pageSizes).ToList(); } } else { if (orderQuery.OrderDirection == OrderDirection.DESC) { data = query.OrderByDescending(orderQuery.Expression) .Skip(pageSizes * pageID) .Take(pageSizes).ToList <dynamic>(); } else { data = query .OrderBy(orderQuery.Expression) .Skip(pageSizes * pageID) .Take(pageSizes).ToList <dynamic>(); } } return(new PagedynamicResult <dynamic> { Data = data, ItemCount = count, PageSize = pageSizes, PageIndex = pageID + 1 }); }