我正在修改现有项目以利用 EF6 (alpha3) 异步扩展方法。我有一种方法采用 func 参数,该参数被传递到 linq to entity 查询中。这是工作代码的示例,预异步:
public IEnumerable<type> GetTypeSet(Func<Type, bool> predicate)
{
return dbSet.Where(d => d.isPublic == true).Where(predicate).tolist();
}
应用异步后:
public async Task<IEnumerable<Type>> GetTypeSet(Func<Type, bool> predicate)
{
return await(dbSet.Where(d => d.isPublic == true)
.Where(predicate)).ToListAsync();
}
此时,我收到一条错误消息,指出 IEnumerable 没有 ToListAsync 的定义。如果我删除.Where(predicate)
它可以正常工作。
我很好奇我是否正确地解决了这个问题,或者在异步工作时是否有更好的选择来传递谓词。