/// <summary> /// 6.0 分页查询 /// </summary> /// <typeparam name="TKey"></typeparam> /// <param name="pagedData">分页模型(页码,页容量;总行数,当前页数据集合)</param> /// <param name="whereLambda">查询条件</param> /// <param name="orderBy">排序条件</param> /// <param name="isAsc">是否升序</param> /// <param name="joinPropertyNames">join属性名</param> public void GetPagedList <TKey>( Model.FormatModels.PageData pagedData, System.Linq.Expressions.Expression <Func <T, bool> > whereLambda, System.Linq.Expressions.Expression <Func <T, TKey> > orderBy, bool isAsc = true, params string[] joinPropertyNames) { //1.获取 对应实体类 的查询 对象 DbQuery <T> dbQuery = db.Set <T>(); //2.循环 要连接查询的 属性 foreach (var joinProperty in joinPropertyNames) { dbQuery = dbQuery.Include(joinProperty); } //3.加入 查询 条件 IQueryable <T> query = dbQuery.Where(whereLambda); //4.加入 排序 条件 IOrderedQueryable <T> orderedQuery = null; if (isAsc) { orderedQuery = query.OrderBy(orderBy); } else { orderedQuery = query.OrderByDescending(orderBy); } //5.分页查询 Skip Take //5.1查询 当前页码 的 数据集合 pagedData.rows = orderedQuery.Skip((pagedData.PageIndex - 1) * pagedData.PageSize).Take(pagedData.PageSize).ToList(); //5.2查询符合条件的 总行数 pagedData.total = orderedQuery.Count(); }
/// <summary> /// 6.0 分页查询 /// </summary> /// <typeparam name="TKey"></typeparam> /// <param name="pagedData">分页模型(页码,页容量;总行数,当前页数据集合)</param> /// <param name="whereLambda">查询条件</param> /// <param name="orderBy">排序条件</param> /// <param name="isAsc">是否升序</param> /// <param name="joinPropertyNames">join属性名</param> public void GetPagedList <TKey>( Model.FormatModels.PageData pagedData, System.Linq.Expressions.Expression <Func <T, bool> > whereLambda, System.Linq.Expressions.Expression <Func <T, TKey> > orderBy, bool isAsc = true, params string[] joinPropertyNames) { this.CurrentRepository.GetPagedList <TKey>(pagedData, whereLambda, orderBy, isAsc, joinPropertyNames); }