Exemple #1
0
        /// <summary>
        /// 根据条件 连表 分页 排序
        /// </summary>
        /// <typeparam name="TOrderKey">排序字段的类型</typeparam>
        /// <param name="pagedData">分页相关数据实体</param>
        /// <param name="whereLambda">查询表达式</param>
        /// <param name="orderByLambda">排序表达式</param>
        /// <param name="isAsc">默认排序方式</param>
        /// <param name="includeEntitysName">要连接的表名</param>
        public void wherePaged <TOrderKey>(Entitys.FormatModels.PagedData <TEntity> pagedData, System.Linq.Expressions.Expression <Func <TEntity, bool> > whereLambda, System.Linq.Expressions.Expression <Func <TEntity, TOrderKey> > orderByLambda, bool isAsc = true, params string[] includeEntitysName)
        {
            //1.0 连表确定原始数据集
            DbQuery <TEntity> dbQuery = DbSet as DbQuery <TEntity>;

            if (includeEntitysName.Any())
            {
                foreach (string item in includeEntitysName)
                {
                    dbQuery = dbQuery.Include(item);
                }
            }
            //2.0 查询排序确定结果数据集
            IQueryable <TEntity> filterQuery;

            if (isAsc)
            {
                filterQuery = dbQuery.Where(whereLambda).OrderBy(orderByLambda);
            }
            else
            {
                filterQuery = dbQuery.Where(whereLambda).OrderByDescending(orderByLambda);
            }
            //3.0 分页
            pagedData.rows  = filterQuery.Skip((pagedData.PageIndex - 1) * pagedData.PageSize).Take(pagedData.PageSize);
            pagedData.total = filterQuery.Count();
        }
Exemple #2
0
 /// <summary>
 /// 根据条件 连表 分页 排序
 /// </summary>
 /// <typeparam name="TOrderKey">排序字段的类型</typeparam>
 /// <param name="pagedData">分页相关数据实体</param>
 /// <param name="whereLambda">查询表达式</param>
 /// <param name="orderByLambda">排序表达式</param>
 /// <param name="isAsc">默认排序方式</param>
 /// <param name="includeEntitysName">要连接的表名</param>
 public void wherePaged <TOrderKey>(Entitys.FormatModels.PagedData <TEntity> pagedData, System.Linq.Expressions.Expression <Func <TEntity, bool> > whereLambda, System.Linq.Expressions.Expression <Func <TEntity, TOrderKey> > orderByLambda, bool isAsc = true, params string[] includeEntitysName)
 {
     dal.wherePaged(pagedData, whereLambda, orderByLambda, isAsc, includeEntitysName);
 }