C# 如何使存储库方法异步?

C# 如何使存储库方法异步?,c#,entity-framework,C#,Entity Framework,我在实体框架6通用存储库上有以下方法: public void Add<T>(T entity) where T : class { _context.Set<T>().Add(entity); } // Add public void Add<T>(Expression<Func<T, Boolean>> criteria) where T : class { _context.Set<T>().AddRange

我在实体框架6通用存储库上有以下方法:

public void Add<T>(T entity) where T : class {
  _context.Set<T>().Add(entity);
} // Add

public void Add<T>(Expression<Func<T, Boolean>> criteria) where T : class {
  _context.Set<T>().AddRange(_context.Set<T>().Where(criteria));
} // Add

public IQueryable<T> Find<T>(Expression<Func<T, Boolean>> criteria) where T : class {
  return _context.Set<T>().Where(criteria);
} // Find
public void Add(T实体),其中T:class{
_context.Set().Add(实体);
}//添加
公共void Add(表达式条件),其中T:class{
_context.Set().AddRange(_context.Set().Where(条件));
}//添加
公共IQueryable查找(表达式条件),其中T:class{
返回_context.Set(),其中(条件);
}//找到
如何使这些方法异步

谢谢,,
Miguel

我真的不认为您应该强制您的存储库是异步的。相反,您应该做的是使异步成为您的业务逻辑,它最终将引用您的存储库并根据需要访问它们。您的数据访问不应该知道它在其他地方的使用方式。

您真的需要它吗?第一个和第三个方法非常简单,当异步运行时,您真的看不到任何区别。即使是第二个,也不会执行以检索任何内容(记住DBSet的不同执行性质)。请看,它显示了所有关于异步查询和保存的内容。事实上,我有一个调度器,它发送由处理程序处理的查询。但是,如果我使我的处理程序异步,我不需要使我的存储库异步,因为它使用EF6吗?我的意思是,处理程序内部发生的事情不应该是异步的?