в основном с помощью оператора преобразуется в это во время компиляции компилятором C #
TransactionScope transactionScope = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = IsolationLevel.ReadUncommitted })
try
{
//your works
}
finally
{
if (transactionScope != null)
((IDisposable)transactionScope).Dispose();
}
Так что это все, что вы должны ожидать от C # .... вам просто нужно выполнить свою работу с TransactionScope
Если объект TransactionScope изначально создал транзакцию, фактическая работа по фиксации транзакции менеджером транзакций происходит после последней строки кода в блоке using.Если транзакция не была создана, то фиксация происходит всякий раз, когда Commit вызывается владельцем объекта Transaction.В этот момент менеджер транзакций вызывает менеджеров ресурсов и сообщает им о фиксации или откате в зависимости от того, был ли вызван метод Complete для объекта TransactionScope.
вызов этого метода не гарантирует, что транзакция будет зафиксирована,Это просто способ сообщить менеджеру транзакций о вашем статусе.После вызова метода Complete вы больше не можете получить доступ к внешней транзакции с помощью свойства Current, и попытка сделать это приведет к возникновению исключения.
Оператор using гарантирует, что метод Dispose объекта TransactionScopeОбъект вызывается, даже если возникает исключение.Метод Dispose отмечает конец области транзакции.Исключения, возникающие после вызова этого метода, могут не повлиять на транзакцию.Этот метод также восстанавливает исходную транзакцию в предыдущее состояние.
Возникает TransactionAbortedException, если область создает транзакцию и транзакция отменяется.TransactionInDoubtException генерируется, если диспетчер транзакций не может принять решение о фиксации.Исключение не возникает, если транзакция совершена.
надеюсь, это прояснится для вас