0

我們正在討論每個請求的一個ObjectContext概念。 (Web應用程序) 我們不關閉Application_BeginRequest和Application_EndRequest之間的連接。 我們在請求期間有一個ObjectContext。 我們在請求期間打開它並不關閉。是否有任何替代方案沒有關閉與ExecuteStoreCommand的連接

實體框架中有一個ExecuteStoreCommand,但這對性能有點危險。因爲當我們使用它時(我認爲)它會關閉連接。而當我們使用的ObjectContext它連接再次打開後(這是性能問題?)

那麼,有沒有替代ExecuteStoreCommand還是我瘋了:)

回答

0

「關閉」和「打開」連接不如果您正確使用connection pooling,會有任何實際的性能影響。連接池保存多個打開的連接,並由多個後續操作重新使用。在大多數情況下打開只意味着「讓我從池中建立連接」,關閉意味着「將連接返回到池」。如果池中沒有可用連接池,則連接池將處理打開新連接以及限制併發使用的連接數。連接池是根據連接字符串+用戶標識定義的。

ExceuteStoreCommand僅在命令開始執行時沒有打開連接時關閉連接。這意味着如果你使用自己的連接傳遞給上下文,它將不會關閉它。

+0

如果我想使用ExecuteStoreCommand來設置我的下一個命令uncommitted read? ExecuteStoreCommand(「SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;」) – 2011-04-26 07:21:25

相關問題