2010-07-09 60 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