Ejemplo n.º 1
0
 /// <summary>
 /// 应用requestInput指定的排序参数
 /// </summary>
 public static IQueryable <T> ApplySorting <T>(this IQueryable <T> query, ISortedResultRequest requestInput = null) where T : class
 {
     if (requestInput != null && !requestInput.Sorting.IsNullOrWhiteSpace())  //有排序参数
     {
         return(query.OrderBy(requestInput.Sorting));
     }
     return(query);
 }
Ejemplo n.º 2
0
        public static IQueryable <T> OrderBy <T>(this IQueryable <T> source, ISortedResultRequest sorted)
        {
            if (sorted.Sorting.IsNullOrEmpty())
            {
                return(source);
            }

            return(source.OrderBy(sorted.Sorting));
        }
Ejemplo n.º 3
0
 /// <summary>
 /// 只查Dto类型指定字段的列表数据
 /// </summary>
 /// <typeparam name="TSource">实体类型</typeparam>
 /// <typeparam name="TDto">列表Dto类型</typeparam>
 /// <param name="query"></param>
 /// <param name="requestInput">查询参数(指定排序列)</param>
 /// <returns>查询出Dto类型指定字段的列表数据</returns>
 public static ListResultDto <TDto> ToListResult <TSource, TDto>(this IQueryable <TSource> query, ISortedResultRequest requestInput = null)
     where TSource : class
     where TDto : class
 {
     return(AsyncHelper.RunSync(() => query.ToListResultAsync <TSource, TDto>(requestInput)));
 }
Ejemplo n.º 4
0
        /// <summary>
        /// 只查Dto类型指定字段的列表数据
        /// </summary>
        /// <typeparam name="TSource">实体类型</typeparam>
        /// <typeparam name="TDto">列表Dto类型</typeparam>
        /// <param name="query"></param>
        /// <param name="requestInput">查询参数(指定排序列)</param>
        /// <returns>查询出Dto类型指定字段的列表数据</returns>
        public static async Task <ListResultDto <TDto> > ToListResultAsync <TSource, TDto>(this IQueryable <TSource> query, ISortedResultRequest requestInput = null)
            where TSource : class
            where TDto : class
        {
            query = query.ApplySorting(requestInput);

            var result = new ListResultDto <TDto>()
            {
                Items = await query.ProjectTo <TDto>().ToListAsync()
            };

            return(result);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Should apply sorting if needed.
        /// </summary>
        /// <param name="query">The query.</param>
        /// <param name="input">The input.</param>
        public static IQueryable <TEntity> ApplySorting <TEntity>(this IQueryable <TEntity> query, ISortedResultRequest sortInput)
        {
            //Try to sort query if available
            if (sortInput != null)
            {
                if (!sortInput.Sorting.IsNullOrWhiteSpace())
                {
                    return(query.OrderBy(sortInput.Sorting));
                }
            }

            //IQueryable.Task requires sorting, so we should sort if Take will be used.
            //if (input is ILimitedResultRequest)
            //{
            //    return query.OrderByDescending(e => e.Id);
            //}

            //No sorting
            return(query);
        }