8

私はこのようなことをする必要があります

select * from myTable with (xlock,holdlock)

EntityFrameworkを使用します。これは可能ですか?TransactionScope分離レベルでを開きましたSerializableが、selectがテーブルをロックしていません。トランザクションスコープが完了するまでロックしてほしい。

4

1 に答える 1

6

可能ですが、LINQ を使用している場合はロック ヒントを追加できない SQL を発行する必要があります (私の知る限り):

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/

于 2010-07-18T21:35:25.027 に答える