2009-10-26 11 views
8

muszę zrobić coś takiegoBlokowanie tabelę z wybraną w Entity Framework

select * from myTable with (xlock,holdlock) 

przy użyciu Entity Framework. czy to możliwe? Otworzyłem TransactionScope z poziomem izolacji Serializable, ale moje zaznaczenia nie blokują tabel. Chciałbym, żeby zablokowali, dopóki nie skończę zakresu transakcji.

Odpowiedz

6

Jest to możliwe, ale trzeba wydać SQL nie można dodać wskazówkę blokującą przy użyciu LINQ (o ile wiem):

ObjectContext.ExecuteStoreCommand(
       string.Format("select 1 from [{0}] with (tablockx, holdlock) where 0 = 1", 
           tableName)); 

Jeśli tak, że w zakresie transakcji potem Trzymaj blokadę, dopóki nie sfinalizujesz transakcji.

Nieco więcej informacji można znaleźć tutaj:

http://peplowdown.wordpress.com/2010/07/18/locking-across-servers-table-locks-with-entity-framework/