存储库中的异步 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();
}
我有存储库方法,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();
}