2009-10-26 10 views
8

Ich brauche etwas zu tun, wie dieseeine Tabelle mit einem ausgewählten Sperren in Entity Framework

select * from myTable with (xlock,holdlock) 

Entity Framework. Ist das möglich? Ich habe eine TransactionScope mit der Serializable Isolationsstufe geöffnet, aber meine Auswahlen sperren die Tabellen nicht. Ich möchte, dass sie sperren, bis ich den Transaktionsbereich abgeschlossen habe.

Antwort

6

Es ist möglich, aber Sie haben die SQL erteilen Sie den Sperrhinweis nicht hinzufügen kann, wenn mithilfe von LINQ (soweit ich weiß):

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

Wenn Sie das tun, in einem Transaktionsbereich Sie dann Halte die Sperre, bis du die Transaktion abgeschlossen hast.

Ein bisschen mehr Informationen finden Sie hier:

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

Verwandte Themen