已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。
4天前关闭。
Improve this question
我们在LINQ查询语法中有await等价物吗?如果没有,为什么会这样?
例如,当与数据库交谈时。或者如果有人能引导我走正确的方向。
已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。
4天前关闭。
Improve this question
我们在LINQ查询语法中有await等价物吗?如果没有,为什么会这样?
例如,当与数据库交谈时。或者如果有人能引导我走正确的方向。
1条答案
按热度按时间zaq34kh61#
是的,但这取决于你做什么和反对什么。你需要阅读
IEnumerable
和IQueryable
。如果你查询的是内存中的列表,那么就没有异步操作。你只是在调用执行查询之前,将
IEnumerable
对象 Package 在源代码周围。所有的操作都是同步的。在这里,
.Skip(2)
和.Take(2)
将查询构建为围绕Countries
列表对象(它本身实现IEnumerable
)的一组IEnumerable
Package 器。ToList()
执行 Package 器以具体化新的List<String>
对象。另一方面,如果查询EF这样的数据源,则源将是
IQueryable
。这里
.Skip(2)
和.Take(2)
,在执行时,构建一个SQL查询以针对数据库中的WeatherForecast
实体执行。ToListAsync()
在执行查询并等待SQL Server响应时通常会让步。您需要小心,因为某些实现(如SQLite的实现)可能有一个任务 Package 器,但它们是同步的,永远不会让步。