存储库中的异步 GetMany 方法

Async GetMany method in Repository

我有存储库方法,returns 根据过滤器

收集
public IEnumerable<T> GetMany(Expression<Func<T, bool>> filter = null)
{
    IQueryable<T> query = DbSet;

    if (filter != null)
    {
        query = query.Where(filter);
    }

    return query.ToList();
}

现在我想把这个方法写成Async。这是我的问题。 我应该将 DbSet (DbSet<T>) 的类型更改为其他类型还是正确的解决方案?

protected readonly DbSet<T> DbSet;

public Repository(AdminDbContext context)
{
    this.Context = context;
    this.DbSet = context.Set<T>();
}

UPD:return query.ToListAsync(); - 够了吗?谢谢

this MSDN article 中所述,您仍然使用 DbSet,但您使用异步扩展来访问集合。

这是您的代码的异步版本:

public Task<IEnumerable<T>> GetManyAsync(Expression<Func<T, bool>> filter = null)
{
    IQueryable<T> query = DbSet;

    if (filter != null)
    {
        query = query.Where(filter);
    }

    return query.ToListAsync();
}