2010-07-09 101 views
1

我開發都承擔着三個應用程序的公用數據庫。
我遇到很多不同的併發問題,並想知道是否有可能阻止任何其他查詢時,某些查詢正在運行執行(換句話說,鎖定數據庫,所以不會有任何併發​​問題)。LINQ和併發問題

編輯:我使用LINQ到SQL

+0

你遇到你在使用數據庫,有什麼具體的併發問題?大多數數據庫在適當使用時非常擅長處理併發性。 – LukeH 2010-07-09 18:55:28

+0

你正在使用什麼數據庫? MySQL,PostGres,一個內存數組?應該有某種鎖定取決於它是什麼,但除非我們知道你在處理什麼,否則我們無法回答。 – 2010-07-09 18:55:46

+0

我正在使用SQL。我遇到的具體問題是兩個用戶同時執行更新命令。某些行可能會受到一個查詢的影響,而其他行則受另一個查詢的影響。 – sooprise 2010-07-09 18:57:42

回答

2

您可以隨時use TransactionScope together with the appropriate locking hints人鎖定。現在的問題是,你爲什麼會想這樣做...

...一個更好的方法是做自己的軟鎖定機制,即一個表,你可以插入一個標誌,有一定操作然後讓其他人在做一些可能與該操作衝突的事情之前檢查該表。

使用DB鎖,這應該是最後的手段。

參見:
http://social.msdn.microsoft.com/forums/en-US/linqprojectgeneral/thread/2d6fdb2e-e17e-4a4c-8da0-6968e60ef855
......還有......
http://social.msdn.microsoft.com/Forums/en-US/linqtosql/thread/1b20c00d-bb53-4057-a336-79d962eb463f