/// <summary> /// 获取分页数据,返回泛型实体List集合 /// </summary> /// <param name="predicate">Linq表达式[条件查询]</param> /// <param name="pageIndex">当前索引的页面</param> /// <param name="pageSize">每一页,页面的行数.</param> /// <param name="sortBy">Linq表达式[排序字段]</param> /// <param name="desc">默认True为降序,False升序</param> /// <returns>AdminUser实体对象的List集合</returns> public static List <AdminUser> GetPaged(Expression <Func <AdminUser, bool> > predicate, int pageIndex, int pageSize, Func <AdminUser, object> sortBy, bool desc = true) { List <AdminUser> list = null; int totalCount = 0; if (predicate != null) { try { using (BaseEntityDbContext <AdminUser> db = new BaseEntityDbContext <AdminUser>()) { IQueryable <AdminUser> query = db.BaseDbSet.Where(predicate); //默认排序 if (sortBy != null) //执行排序 { if (desc) { list = query.OrderByDescending(sortBy).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList(); } else { list = query.OrderBy(sortBy).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList(); } } else//系统默认排序 { list = query.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList(); } totalCount = query.Count(); } } catch (Exception ex) { log.Error("获取失败", ex); } } return(list); }
/// <summary> /// 获取该实体的查询,多排序 /// </summary> /// <param name="top">查询前几条,top小于等于0则展示全部</param> /// <param name="predicate">表达式</param> /// <param name="sortDic">字典存放多个排序字段,Key = 默认True为降序,False升序</param> /// <returns>Abc实体对象的List集合</returns> public static List <Abc> GetQuery(int top, Expression <Func <Abc, bool> > predicate, Dictionary <Func <Abc, object>, bool> sortDic) { List <Abc> list = null; if (predicate != null) { try { using (BaseEntityDbContext <Abc> db = new BaseEntityDbContext <Abc>()) { if (sortDic != null && sortDic.Count > 0)//根据字典内的排序执行 { IQueryable <Abc> query = db.BaseDbSet.Where(predicate); IOrderedEnumerable <Abc> queryOrder = null; int num = 0; foreach (KeyValuePair <Func <Abc, object>, bool> kvp in sortDic) { if (num == 0) //第一个 { if (kvp.Value) //True为降序 { queryOrder = query.OrderByDescending(kvp.Key); } else { queryOrder = query.OrderBy(kvp.Key); } } else { if (kvp.Value)//True为降序 { queryOrder = queryOrder.ThenByDescending(kvp.Key); } else { queryOrder = queryOrder.ThenBy(kvp.Key); } } num++; } if (queryOrder != null) { if (top > 0)//top<=0则展示全部 { list = queryOrder.Take(top).ToList(); } else { list = queryOrder.ToList(); } } else { if (top > 0)//top<=0则展示全部 { list = query.Take(top).ToList(); } else { list = query.ToList(); } } } else//默认排序 { if (top > 0)//top<=0则展示全部 { list = db.BaseDbSet.Where(predicate).Take(top).ToList(); } else { list = db.BaseDbSet.Where(predicate).ToList(); } } } } catch (Exception ex) { log.Error("获取失败", ex); } } return(list); }