2
respostas

[Dúvida] Projeto sem os campos Guid

Boa noite,

Tive que retirar do projeto os campos Guid identificador e Guid Pix, pois estavam dando erro no SQL. Porém a classe Conta Corrente não funciona nenhum comando, não passa em nenhum teste, mesmo realizando as alterações em todas as partes do projeto retirando esses campos. As classes Cliente e Agência funcionam perfeitamente sem esses campos.

Lembrando que mantive na classe Conta Corrente colunas para vincular ao cliente e agência (ClienteId e AgenciaId).

Teria alguma sugestão de onde precisa alterar para o projeto funcionar sem esses campos?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

public class ContaCorrente
    {
        [Key]
        public int Id { get; set; }
        public int Numero { get; set; }
        //public Guid Identificador { get; set; }
        public ContaCorrente()
        {

        }
        private Cliente _cliente;
        public virtual Cliente Cliente
        {
            get
            {
                return _cliente;
            }
            set
            {
                if (value == null)
                {
                    throw new FormatException("Cliente não pode ser nulo.");
                }
                _cliente = value;
            }
        }

        private Agencia _agencia;
        public virtual Agencia Agencia
        {
            get { return _agencia; }
            set
            {
                if (value == null)
                {
                    throw new FormatException("Agência não pode ser nulo.");
                }
                _agencia = value;
            }
        }

        private double _saldo = 100;
        public double Saldo
        {
            get
            {
                return _saldo;
            }
            set
            {
                if (value <= 0)
                {
                    throw new Exception("O valor para saldo não pode ser menor ou igual a zero.");
                }

                _saldo += value;
            }   
        }


        //private Guid _pix;
        //public Guid PixConta { get => _pix; set => _pix = value; }




    }

}
2 respostas

Boa tarde.

Talvez o mais fácil seja você debugar um dos testes e ver a exception original que está sendo lançada. Altere o seu try-catch.

Hoje está assim:

public List<ContaCorrente> ObterTodos()
        {
            try
            {
                return _contexto.ContaCorrentes.Include(c => c.Cliente)
                                               .Include(x => x.Agencia).ToList();
            }
            catch
            {
                throw new Exception("Erro ao obter conta,");
            }
        }

Altere para algo assim:


public List<ContaCorrente> ObterTodos()
        {
            try
            {
                return _contexto.ContaCorrentes.Include(c => c.Cliente)
                                               .Include(x => x.Agencia).ToList();
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao obter conta,"); // coloque o breakpoint aqui e analise a variável "ex"
            }
        }

Você vai ter uma ideia melhor do que está acontecendo: se é problema de conexão, dados inválidos no banco de dados, etc. Caso a mensagem do erro esteja confusa, poste ela aqui.

Olá Augusta, tudo bem?

Pelo que entendi, você retirou os campos Guid do seu projeto e agora a classe ContaCorrente não está funcionando corretamente, mesmo realizando as alterações necessárias em todas as partes do projeto.

Uma sugestão seria verificar se você removeu todos os usos desses campos na classe ContaCorrente, inclusive em métodos que possam estar utilizando esses campos. Além disso, verifique se você atualizou corretamente o banco de dados para refletir essas mudanças.

Outra possibilidade é que o erro não esteja relacionado à remoção dos campos Guid, mas sim a algum outro problema na classe ContaCorrente. Nesse caso, sugiro que você revise a classe e verifique se não há nenhum erro de sintaxe ou lógica.

Espero ter ajudado e bons estudos!