2011-08-18 92 views
1

我用ASP.NET MVC3構建了一個網站,使用實體框架4.它應該是一個問題。多線程和實體框架

我的控制器都使用相同的DbContext類是這樣的:

private aim_spg_dk_dbEntities db = new aim_spg_dk_dbEntities(); 

我想知道,這是否會誤事,具有多用戶的網站。如果100個用戶回答問題,會發生什麼?我應該使用線程,以及如何?

感謝

回答

2
private aim_spg_dk_dbEntities db = new aim_spg_dk_dbEntities(); 

這是好的 - 要創建爲每個請求一個新的DB上下文實例 - 那麼每個用戶將使用一個單獨的數據庫上下文實例。你不能做的是跨多個線程共享同一個數據庫上下文實例(數據庫上下文不是線程安全的)。

1

實體上下文將成爲線程特定的並且執行語句作爲事務。除非你在請求線程之間使用共享數據,否則沒有什麼可擔心的。