2016-09-14 86 views
0

我正在使用實體框架和控制器與異步方法。多個控制器可以使用不同的dbcontexts同時訪問同一個數據庫嗎?

當一個控制器通過異步方法數據庫播放時,服務器可能會收到來自其他客戶端的請求使用相同的數據庫發揮。

我知道dbcontext不是線程安全的。

爲什麼這裏沒有問題?

+0

這取決於您連接到的數據庫的類型。有些用戶鎖定以防止多個用戶同時訪問數據庫時發生爭用。 SQL Server有鎖,但Jet Engine或ACE驅動程序(由access和excel使用)沒有鎖來防止爭用。 – jdweng

回答

4

我理解的DbContext不是線程安全的。

這意味着,相同DbContext實例不應該從多個線程中使用。對於多個DbContext來說,在不同線程上擊數據庫是完全正確的。

在這種情況下數據庫會發生什麼情況取決於數據庫的鎖定/併發設置,但這是另一個問題。

相關問題