2016-10-18 3 views
0

SQL Serverで一定の時間テーブルをロックしたいとします。私はコードレベルでC#を使用しています。どうすればそれを達成できますか、テーブルがロックされているかどうかを確認する必要もあります。私はSQL Serverのテーブルをロックする知識はあまりありません。私はエンティティフレームワークを使用してそれを達成したい。どんな助けも大歓迎です。SQL Serverテーブルを一定時間ロックし、ロックされているかどうかを確認します

+1

http://stackoverflow.com/questions/25273157/t-sql-lock-a-table-manually-数分の間 – Vincent

+1

純粋なエンティティフレームワークではできません。あなたはdaoを使う**を持っています。 –

答えて

1

次のように試すことができます。

using (var context = new YourContext()) 
    { 
    using (var dbContextTransaction = context.Database.BeginTransaction()) 
    { 
     //Lock the table during this transaction 
     context.Database.ExecuteSqlCommand("SELECT 1 FROM YourTable WITH (TABLOCKX) 
    WAITFOR DELAY '00:03:00'"); 

      //your work here 

      dbContextTransaction.Commit(); 
     } 
} 

注:それが終了した後、テーブルのロックが解除されますBeginTransactionブロック

+1

小さな編集。私は 'スコープ.Commit() 'の代わりに' dbContextTransaction.Commit() 'でなければなりません。実際のテーブル名に置き換えられるSQLコマンドのテーブル –

+1

訂正していただきありがとうございます。私はそれを編集しました:) – Sampath

関連する問題