我有一个应用程序服务方法GetWithName
,我想编写它的异步版本。为此,我尝试使用ToListAsync()
,但存储库中没有此方法。
public PagedResultDto<BookDto> GetWithName(SearchWithNameRequestDto input)
{
var books =
Repository
.Where(p => p.Name.Contains(input.Name))
.ToList();
return new PagedResultDto<BookDto>
{
TotalCount = books.Count,
Items = ObjectMapper.Map<List<Book>, List<BookDto>>(books)
};
}
如何使用ToList
方法的异步版本?
答案 0 :(得分:2)
ToListAsync
取决于ORM:
// using Microsoft.EntityFrameworkCore;
var query = Repository
.Where(p => p.Name.Contains(input.Name));
var books = await query.ToListAsync();
对于DI(独立于ORM)解决方案,请注入IAsyncQueryableExecuter
并执行以下操作:
// using Abp.Linq;
var query = Repository
.Where(p => p.Name.Contains(input.Name));
var books = await _asyncQueryableExecuter.ToListAsync(query);