如果我有
Task<List<SomeTable>> models = _dbContext.SomeTable.ToListAsync();
我现在如何使用First()?
models.First() // Task<List<..>> does not contain a definition for First
答案 0 :(得分:4)
您需要await
异步方法ToListAsync()
的结果才能获得List<T>
,因为异步方法始终返回Task
或Task<TResult>
:
List<SomeTable> models = await _dbContext.SomeTable.ToListAsync();
并且您调用它的方法也需要async
。
或者阻止异步调用but that's not recommended approach:
List<SomeTable> models = _dbContext.SomeTable.ToListAsync().Result;
现在,如果集合中没有返回任何项目,那么您可以使用FirstOrDefault()
获取第一个项目,因为First()
会在运行时失败:
var model = models.FirstOrDefault();
现在,一旦Db调用完成并将结果具体化到内存集合中,就会在models
中获得存储。