我有根据过滤器返回集合的存储库方法
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();
}