Как TransactionScope работает с несколькими запросами? - PullRequest
0 голосов
/ 30 декабря 2011

Я использую TransactionScope, а затем сохраняю данные в базе данных.

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

Теперь мой вопрос: он сохранит измененные данные или нет? И как работает преобразование (сохранять данные в базе данных при каждом вызове или сохранять данные после transactionObject.Commit() вызова)?

Ответы [ 2 ]

0 голосов
/ 30 декабря 2011

Полагаю, что TransactionScope должен фиксировать данные методом Complete (см. в этой статье ).Пожалуйста, прочитайте эту статью MSDN .

В ней говорится, что:

Это просто способ сообщить менеджеру транзакций о вашем статусе.После вызова этого метода вы больше не можете получить доступ к внешней транзакции через свойство Current, и попытка сделать это приводит к возникновению исключения.

и:

Фактическая работа коммита между менеджером ресурсов происходит в операторе End Using, если объект TransactionScope создал транзакцию.Если транзакция не была создана, то фиксация происходит всякий раз, когда владелец объекта Committable вызывает транзакцию.

Однако в конкретном случае проще всего проверить ее с помощью примера кода.;.)

0 голосов
/ 30 декабря 2011

Данные сохраняются только в том случае, если вы звоните transactionObject.Commit().Даже если вы измените сохраненный объект, он не отразит изменения, если вы не сохраните объект снова.

...