使用Entity Framework中的select鎖定表

entity-framework table-locking transactionscope

我需要做這樣的事情

select * from myTable with (xlock,holdlock)

使用實體框架。這可能嗎?我已經打開了一個帶有Serializable隔離級別的TransactionScope ,但是我的選擇沒有鎖定表。我希望他們鎖定,直到我完成交易範圍。

熱門答案

這是可能的,但你必鬚髮出SQL,你不能在使用LINQ時添加鎖定提示(據我所知):

ObjectContext.ExecuteStoreCommand(
                string.Format("select 1 from [{0}] with (tablockx, holdlock) where 0 = 1",
                              tableName));

如果您在事務範圍中執行此操作,那麼您將保持鎖定,直到完成事務。

可以在這裡找到更多信息:

http://peplowdown.wordpress.com/2010/07/18/locking-across-servers-table-locks-with-entity-framework/



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因