2017-09-26 77 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