2009-10-26 9 views
8

의 선택있는 테이블을 잠금하는 엔티티 프레임 워크를 사용하여이내가 필요로하는 엔티티 프레임 워크

select * from myTable with (xlock,holdlock) 

같은 일을합니다. 이것이 가능한가? Serializable 격리 수준을 사용하여 TransactionScope을 열었지만 선택 항목이 테이블을 잠그지 않았습니다. 나는 그들이 거래 범위를 완료 할 때까지 그들을 잠그고 싶습니다.

답변

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/