Sperren einer Tabelle mit einer Auswahl in Entity Framework

entity-framework table-locking transactionscope

Frage

Ich muss so etwas tun

select * from myTable with (xlock,holdlock)

Entity Framework verwenden. Ist das möglich? Ich habe einen TransactionScope mit der Serializable Isolationsstufe geöffnet, aber meine Auswahllisten sperren die Tabellen nicht. Ich möchte, dass sie gesperrt werden, bis der Transaktionsumfang abgeschlossen ist.

Beliebte Antwort

Es ist möglich, aber Sie müssen die SQL-Anweisung ausgeben. Sie können den Sperrhinweis bei Verwendung von LINQ nicht hinzufügen (soweit ich weiß):

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

Wenn Sie dies in einem Transaktionsbereich tun, halten Sie die Sperre bis zum Abschluss der Transaktion.

Ein bisschen mehr Informationen finden Sie hier:

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



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum