【问题标题】:how can i add totalresults to my response ? here is my code . it returns the results as intended but i want to get total result number我怎样才能将总结果添加到我的回复中?这是我的代码。它按预期返回结果,但我想获得总结果数
【发布时间】:2021-08-19 21:43:16
【问题描述】:
public async Task<IReadOnlyList<T>> GetPagedReponseAsync(int pageNumber, int pageSize)
{            
    var result = await _dbContext
    .Set<T>()
    .Skip((pageNumber - 1) * pageSize)
    .Take(pageSize)
    .AsNoTracking()
    .ToListAsync();
    return result;
}

结果包含预期的分页数据,但我如何返回响应数据的结果总数?

【问题讨论】:

    标签: c# asp.net-web-api .net-core asp.net-core-3.1 clean-architecture


    【解决方案1】:

    您可以创建一个特定的响应对象,其中包含您的项目 + 其他数据(如项目计数)。对项目计数 + 项目请求本身进行数据库请求。例如:

    public class PagedResponse<T>
    {
        public PagedResponse(IReadOnlyCollection<T> items, int count)
        {
            Items = items;
            TotalCount = count;
        }
    
        public IReadOnlyCollection<T> Items { get; }
        public int TotalCount { get; }
    }
    
    public async Task<PagedResponse<T>> GetPagedReponseAsync<T>(int pageNumber, int pageSize) where T : class
    {
        var count = await _dbContext.Set<T>().CountAsync();
                
        var result = await _dbContext
        .Set<T>()
        .Skip((pageNumber - 1) * pageSize)
        .Take(pageSize)
        .AsNoTracking()
        .ToListAsync();
    
        return new PagedResponse(result, count);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-01-19
      • 1970-01-01
      • 1970-01-01
      • 2021-03-22
      • 2020-07-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多