Ejemplo n.º 1
0
        /// <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();
        }
Ejemplo n.º 2
0
 /// <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);
 }