/// <summary> /// https://github.com/2881099/FreeSql/wiki/%e8%bf%94%e5%9b%9e%e6%9f%a5%e8%af%a2%e7%9a%84%e6%95%b0%e6%8d%ae 返回更为复杂的结构 /// </summary> /// <param name="searchDto"></param> /// <returns></returns> public PagedResultDto <UserDto> GetUserList(UserSearchDto searchDto) { ISelect <LinUser> select = _userRepository.Select .Where(r => r.Admin == (int)UserAdmin.Common) .WhereIf(searchDto.GroupId != null, r => r.GroupId == searchDto.GroupId); List <UserDto> linUsers = select .OrderByDescending(r => r.Id) .From <LinGroup>((a, b) => a.LeftJoin(c => c.GroupId == b.Id) ) .Page(searchDto.Page + 1, searchDto.Count) .ToList((a, b) => new { user = a, GroupName = b.Name }).Select(r => { UserDto userDto = _mapper.Map <UserDto>(r.user); userDto.GroupName = r.GroupName; return(userDto); }).ToList(); long totalNums = select.Count(); return(new PagedResultDto <UserDto>(linUsers, totalNums)); }
public async Task <LogsModelData> LogsResult(int page, int limit, string value = "") { ISelect <Logs> skeyAll = _SqlLiteContext.Select <Logs>(); var count = _SqlLiteContext.Select <Logs>().Count().ToInt(); if (!string.IsNullOrEmpty(value)) { skeyAll = skeyAll.Where(s => s.Level.Contains(value) || s.Message.Contains(value)); } var skey = await skeyAll.OrderByDescending(s => s.TimestampUtc).Skip((page - 1) * limit).Take(limit).ToListAsync(); //var skey = await _SqlLiteContext.Select<Logs>().ToListAsync(); List <LogsModel> data = new List <LogsModel>(); foreach (var item in skey) { data.Add(new LogsModel { EventName = item.EventId, Level = item.Level, Message = item.Message, Time = item.TimestampUtc, Id = item.Id }); } return(new LogsModelData { msg = "", count = count, code = 0, data = data }); }
public PagedResultDto <Post> Get([FromQuery] SearchPostDto searchPostDto) { ISelect <Post> selectPost = _fsql .Select <Post>() .Where(r => r.BlogId == searchPostDto.BlogId); List <Post> posts = selectPost.OrderByDescending(r => r.ReplyTime) .Page(searchPostDto.PageNumber, searchPostDto.PageSize) .ToList(); long total = selectPost.Count(); return(new PagedResultDto <Post>(total, posts)); }
protected virtual ISelect <TEntity> ApplySorting(ISelect <TEntity> query, TGetListInput input) { if (input is ISortedResultRequest sortInput) { if (!string.IsNullOrWhiteSpace(sortInput.Sorting)) { return(query.OrderBy(sortInput.Sorting)); } } if (input is ILimitedResultRequest) { return(query.OrderByDescending(e => e.Id)); } return(query); }
/// <summary> /// Should apply sorting if needed. /// </summary> /// <param name="query">The query.</param> /// <param name="input">The input.</param> protected virtual ISelect <TEntity> ApplySorting(ISelect <TEntity> query, TGetListInput input) { //Try to sort query if available if (input is ISortedResultRequest sortInput) { 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); }
/// <summary> /// 【linq to sql】专用扩展方法,不建议直接使用 /// </summary> public static ISelect <T1> ThenByDescending <T1, TMember>(this ISelect <T1> that, Expression <Func <T1, TMember> > column) where T1 : class => that.OrderByDescending(column);