public void Rollback() { if (_finished) { throw new Exception("This transaction is finished"); } if (!_rolledBack) { if (_ownsTransaction) { ConScope.RollbackTransaction(); } _rolledBack = true; _finished = true; } }
public void Commit() { if (_finished) { throw new Exception("This transaction is finished"); } if (!_commited) { if (_ownsTransaction) { ConScope.CommitTransaction(); } _commited = true; _finished = true; } }
public void Dispose() { if (_disposed) { return; } _disposed = true; if (_ownsTransaction) { if (!_finished) { // If we disposed transaction without commit/rollback, do an implicit rollback. ConScope.RollbackTransaction(); } } ConScope.UnrefTransaction(); }
private async Task Init() { _ownsTransaction = await ConScope.RefTransaction(); }