存储库中的异步GetMany方法

问题描述 投票:1回答:1

我有根据过滤器返回集合的存储库方法

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();-够了吗?谢谢

c# .net asynchronous collections repository-pattern
1个回答
1
投票

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();
}
© www.soinside.com 2019 - 2024. All rights reserved.