2012-11-10 44 views
1

我有一個使用EF訪問數據庫的存儲庫。該存儲庫用於我的主體應用程序。實體框架存儲庫和異步調用

我的quiestion是,如果是以異步方式調用我的存儲庫的方法或更好地調用正常調用是一個好主意。

如果是一個好主意的異步方式。將異步調用到我的存儲庫方法或者是否有任何其他方法以異步方式使用EF是個好主意?

謝謝。 Daimroc。

+0

異步調用它的目標是什麼?請注意,EF5通常不支持異步和EF(特別是ObjectContext和ObjectStateManager)不是線程安全的。 EF6支持異步,但請注意,異步的目標不是模擬多線程,而是爲了節省資源,因此不應在前一個查詢未完成時向數據庫發送查詢。 – Pawel

回答

2

對EF和服務器端編程的異步支持主要是爲了幫助您的網站在服務器上更好地擴展。通過在可能需要一段時間的操作(如訪問數據庫)時釋放線程,該線程將可用於其他Web請求。一旦數據庫返回結果,你可以從你離開的地方繼續。

正如Pawel在上面的評論中所述:ObjectContext的一個實例並不打算在多線程環境中使用。爲您處理的每個請求創建一個實例。

要回答您的原始問題:是的,如果您擔心縮放網站,那麼在EF6中使用新的異步支持是一個不錯的理想選擇。