0

我有一个应用程序服务方法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方法?

4

1 回答 1

4

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);
于 2019-12-16T12:24:25.047 回答