私はこのようなことをする必要があります
select * from myTable with (xlock,holdlock)
EntityFrameworkを使用します。これは可能ですか?TransactionScope
分離レベルでを開きましたSerializable
が、selectがテーブルをロックしていません。トランザクションスコープが完了するまでロックしてほしい。
私はこのようなことをする必要があります
select * from myTable with (xlock,holdlock)
EntityFrameworkを使用します。これは可能ですか?TransactionScope
分離レベルでを開きましたSerializable
が、selectがテーブルをロックしていません。トランザクションスコープが完了するまでロックしてほしい。
可能ですが、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/