public virtual void Dispose()
{
if (_disposing)
{
return;
}
_disposing = true;
_client.EndTransaction();
if (!_markCommitted && Committable && TransactionContext.IsOpen)
{
Rollback();
}
if (_transactionContext != null && ShouldDisposeTransaction())
{
_transactionContext.Dispose();
_transactionContext = null;
}
}