为什么我不能等待'System.Linq.IQueryable

joh*_* Gu -4 c# linq asynchronous entity-framework entity-framework-6

我有以下存储库方法: -

  public  IQueryable<TSet> getAllScanEmailTo()
        {
         return   t.TSets.Where(a=>a.Name.StartsWith("ScanEmail"));

        }
Run Code Online (Sandbox Code Playgroud)

这被称为如下: -

var emailsTo = repository.getAllScanEmailTo().ToList();
Run Code Online (Sandbox Code Playgroud)

现在我试图改变以上使用异步,所以我修改我的存储库方法如下: -

 public async Task<  IQueryable<TSet>> getAllScanEmailTo()
        {
         return  await t.TSets.Where(a=>a.Name.StartsWith("ScanEmail"));

        }
Run Code Online (Sandbox Code Playgroud)

但我得到以下错误: -

Error   1   Cannot await 'System.Linq.IQueryable<Final.Models.TSet>'
Run Code Online (Sandbox Code Playgroud)

Dan*_*ite 7

既然你提到你使用EF6,你可以使用.ToListAsync().然后就可以await了.

  • @johnG实体框架6内置支持,看看我之前给你的链接. (2认同)
  • 这一点在Daniel为您提供的链接中进行了解释(https://msdn.microsoft.com/en-us/data/jj819165.aspx):*"`System.Data.Entity`命名空间的`using`语句给出了我们访问EF异步扩展方法."* (2认同)