【问题标题】: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);
}