2016-10-18 1 views
0

SQL Server에서 주어진 시간 동안 테이블을 잠그고 싶습니다. 코드 수준에서 C#을 사용하고 있습니다. 어떻게하면되는지, 테이블이 잠겨 있는지 여부를 확인해야합니다. SQL Server에서 테이블을 잠그는 것에 대한 많은 지식이 없습니다. 엔티티 프레임 워크를 사용하여 달성하고 싶습니다. 어떤 도움이라도 대단히 감사합니다.주어진 시간 동안 SQL 서버 테이블을 잠그고 잠겨 있는지 확인하십시오.

+1

http://stackoverflow.com/questions/25273157/t-sql-lock-a-table-manually- for-some-minutes – 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

작은 편집. 나는'scope.Commit()'대신'dbContextTransaction.Commit()'이어야하고 SQL 명령의 Table은 실제 테이블 이름 –

+1

으로 바뀌어야합니다. 수정 해 주셔서 감사합니다. 나는 그것을 편집했다 :) – Sampath

관련 문제