2017-09-26 72 views
-2

实体框架核心在IQueryable上提供异步扩展方法。何时使用EF Core的asynschronus方法?

SingleAsyncSingleOrDefaultAsyncFirstAsyncFirstOrDefaultAsyncToListAsync

什么时候应该使用正常的方法和何时应使用异步变体?我怎么知道?

我应该总是使用异步扩展方法,还是只使用某些用例或场景?

+3

当你想异步运行时使用异步方法。不确定你的问题是否有道理。 – DavidG

+0

因此,如果有一个从EF Core获取对象并输出的ASP.NET Core控制器,我应该如何异步执行该操作?要么工作。 – Fred

+1

如果你不知道答案,那么你需要去阅读'async' /'await'是什么。 – DavidG

回答

0

Asynchronous programming with async and await

非同步是对于那些可能阻塞, 诸如web访问活动是至关重要的。访问网络资源有时很慢,或者延迟了 。如果此类活动在同步过程中被阻止,则整个应用程序必须等待。在异步过程中, 应用程序可以继续进行其他不依赖于网络资源的工作,直到潜在的阻塞任务完成。

+0

是的,我知道,我在使用'HttpClient'时广泛使用异步。但是这个问题是关于EF核心,以及哪些场景和用例使用不同的方法提供的。 – Fred

+0

这是一样的。 EF会对您的SQL服务器进行网络调用,并在服务器执行查询时等待。如果你不想浪费你的服务器资源进行愚蠢的等待 - 不要等待,使用异步。 – Dmitry

+0

所以我应该*总是*使用*异步方法?即使这样,因为我使用了“await”关键字,所以它是“愚蠢的等待”,对吧? – Fred