2014-12-22 2 views

ответ

0

Вы должны использовать ключевые слова, чтобы предотвратить блокировку таблицы, например, nolock, но обратите внимание на то, как вы их читаете, например, прочитали прочитанные или прочитали без ограничений, поскольку это может оставить вас с так называемыми грязными чтениями.

2

Добавить в TransactionScope с опцией RequireNew и установите IsolationLevel в ReadUncommitted:

using (var t = new TransactionScope(TransactionScopeOption.RequireNew, 
new TransactionOptions { 
    IsolationLevel = IsolationLevel.ReadUncommitted 
})) 
{ 
    // your code 
} 
+0

Спасибо за ваш ответ, я пробую его, но есть ли какие-то недостатки? –

+0

Да: вы не участвуете в транзакции. Вы просили об этом, но вы должны знать, что делаете. Есть причина для инкапсулирующей транзакции, не так ли? – Frank

+0

ах! Вы имеете в виду, что не будет отката или фиксации? –

2

TransactionScope делает блок кода транзакционным. Введенные таблицы блокируются, а «код» не был COMMITED/ROLLED BACK.

0

Я решил эту проблему, добавив

with(nolock)

к SQL хранимых процедур, которые участвуют в сделке.

 Смежные вопросы

  • Нет связанных вопросов^_^