protected virtual void Dispose(bool disposing)
        {
            if (disposed)
                return;

            if (disposing)
            {
                if(_commitChanges)
                    _transactionScope?.CommitAndClose();
                else
                    _transactionScope?.RollbackAndClose();
            }

            disposed = true;
        }