public void Salvar()
        {
            if (_transacoes == null)
            {
                return;
            }

            var gerenciarTransacao = !EmTransacao;

            if (gerenciarTransacao)
            {
                IniciarTransacao();
            }

            try
            {
                Transacoes.Salvar();
                if (gerenciarTransacao)
                {
                    ConfirmarTransacao();
                }
            }
            catch
            {
                if (gerenciarTransacao)
                {
                    CancelarTransacao();
                }
                throw;
            }
        }
        public void Salvar()
        {
            if (_transacoes == null)
            {
                return;
            }

            ITransacao transacao          = null;
            var        gerenciarTransacao = !EmTransacao;

            if (gerenciarTransacao)
            {
                transacao = IniciarTransacao();
            }

            try
            {
                Transacoes.Salvar();
                if (gerenciarTransacao)
                {
                    transacao.ConfirmarTransacao();
                }
                if (LimparContextoAoSalvar)
                {
                    Limpar();
                }
            }
            catch
            {
                if (gerenciarTransacao)
                {
                    transacao.CancelarTransacao();
                }
                throw;
            }
        }