/// <summary> /// 查询分页 /// </summary> /// <typeparam name="TKey">排序键</typeparam> /// <param name="pageNumber">页码</param> /// <param name="pageSize">页大小</param> /// <param name="predicate">筛选条件</param> /// <param name="keySelector">用于从元素中提取键的函数</param /// <param name="orderBy">排序方式(默认 Asc)</param> /// <returns></returns> public Pagination <TEntity> QueryPaging <TKey>(int pageNumber, int pageSize, Expression <Func <TEntity, bool> > predicate, Expression <Func <TEntity, TKey> > keySelector, OrderByFlag orderBy) { var total = Count(predicate); var pagination = new Pagination <TEntity>(pageNumber, pageSize, total); if (total == 0) { pagination.List = new List <TEntity>(); return(pagination); } // var queryable = DbEntities; if (predicate != null) { queryable = queryable.Where(predicate); } // if (orderBy == OrderByFlag.Desc) { queryable = queryable.OrderByDescending(keySelector); } else { queryable = queryable.OrderBy(keySelector); } queryable = queryable.Skip(pagination.PageSize * (pagination.PageNumber - 1)).Take(pagination.PageSize); pagination.List = queryable.ToList(); // return(pagination); }
/// <summary> /// 查询 /// </summary> /// <typeparam name="TKey">排序键</typeparam> /// <param name="predicate">筛选条件</param> /// <param name="keySelector">用于从元素中提取键的函数</param> /// <param name="orderBy">排序方式(默认 Asc)</param> /// <returns></returns> public List <TEntity> Query <TKey>(Expression <Func <TEntity, bool> > predicate, Expression <Func <TEntity, TKey> > keySelector, OrderByFlag orderBy) { var queryable = DbEntities; if (predicate != null) { queryable = queryable.Where(predicate); } // if (orderBy == OrderByFlag.Desc) { queryable = queryable.OrderByDescending(keySelector); } else { queryable = queryable.OrderBy(keySelector); } // return(queryable.ToList()); }
/// <summary> /// 查询分页 /// </summary> /// <typeparam name="TKey">排序键</typeparam> /// <param name="pageNumber">页码</param> /// <param name="pageSize">页大小</param> /// <param name="keySelector">用于从元素中提取键的函数</param /// <param name="orderBy">排序方式(默认 Asc)</param> /// <returns></returns> public Pagination <TEntity> QueryPaging <TKey>(int pageNumber, int pageSize, Expression <Func <TEntity, TKey> > keySelector, OrderByFlag orderBy) { return(QueryPaging(pageNumber, pageSize, null, keySelector, orderBy)); }
/// <summary> /// 查询 /// </summary> /// <typeparam name="TKey">排序键</typeparam> /// <param name="keySelector">用于从元素中提取键的函数</param> /// <param name="orderBy">排序方式(默认 Asc)</param> /// <returns></returns> public List <TEntity> Query <TKey>(Expression <Func <TEntity, TKey> > keySelector, OrderByFlag orderBy) { return(Query(null, keySelector, orderBy)); }
/// <summary> /// 查询分页 /// </summary> /// <typeparam name="TKey">排序键</typeparam> /// <param name="pageNumber">页码</param> /// <param name="pageSize">页大小</param> /// <param name="predicate">筛选条件</param> /// <param name="keySelector">用于从元素中提取键的函数</param /// <param name="orderBy">排序方式(默认 Asc)</param> /// <returns></returns> public Pagination <TEntity> QueryPaging <TKey>(int pageNumber, int pageSize, Expression <Func <TEntity, bool> > predicate, Expression <Func <TEntity, TKey> > keySelector, OrderByFlag orderBy) { return(EntityRepository.QueryPaging(pageNumber, pageSize, predicate, keySelector, orderBy)); }
/// <summary> /// 查询 /// </summary> /// <typeparam name="TKey">排序键</typeparam> /// <param name="predicate">筛选条件</param> /// <param name="keySelector">用于从元素中提取键的函数</param> /// <param name="orderBy">排序方式(默认 Asc)</param> /// <returns></returns> public List <TEntity> Query <TKey>(Expression <Func <TEntity, bool> > predicate, Expression <Func <TEntity, TKey> > keySelector, OrderByFlag orderBy) { return(EntityRepository.Query(predicate, keySelector, orderBy)); }
/// <summary> /// 获取排序方式 /// </summary> /// <param name="sortOrder"></param> /// <returns></returns> public static OrderByFlag GetOrderBy(string sortOrder, OrderByFlag defaultValue = OrderByFlag.Asc) { return(EnumUtil.ConvertToEnum(sortOrder, defaultValue, null)); }
/// <summary> /// 根据属性名称排序 /// </summary> /// <typeparam name="T">实体类型</typeparam> /// <param name="queryable">查询数据实体集合</param> /// <param name="propertyName">属性名称</param> /// <param name="orderBy">排序方式</param> /// <returns></returns> public static IQueryable <T> PagingOrder <T>(IQueryable <T> queryable, string propertyName, OrderByFlag orderBy) { //参数 p, p=>p. var param = Expression.Parameter(typeof(T), "p"); var body = Expression.Property(param, propertyName); dynamic keySelector = Expression.Lambda(body, param); if (orderBy == OrderByFlag.Desc) { return(Queryable.OrderByDescending(queryable, keySelector)); } else { return(Queryable.OrderBy(queryable, keySelector)); } }