Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Bug] A data não está sendo salva corretamente 0001-01-01 00:00:00.000000

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

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

2 respostas

Olá, Adriano.

Tudo bem?

Pelas imagens que você compartilhou, parece que as datas de nascimento estão sendo salvas com o valor mínimo padrão do tipo DateTime, que é 0001-01-01 00:00:00.000000. Isso geralmente ocorre quando a data não é fornecida ou é fornecida de forma inválida, fazendo com que o DateTime seja inicializado com seu valor padrão.

Considerando o contexto da sua atividade, aqui estão algumas verificações e passos que você pode seguir para resolver esse problema:

  1. Verifique o Mapeamento DTO para Entidade: Certifique-se de que o mapeamento do CreateUsuarioDto para a entidade Usuario está sendo feito corretamente, especialmente para o campo DataNascimento. Se estiver usando o AutoMapper, verifique as configurações de mapeamento.

  2. Verifique os Dados Recebidos no Controller: Confirme se o campo DataNascimento está sendo recebido corretamente no método CadastraUsuario do seu controller. Você pode fazer isso inspecionando o valor de dto.DataNascimento antes de mapeá-lo para a entidade Usuario.

  3. Análise de Model Binding: O ASP.NET Core utiliza o model binding para converter os dados de entrada em tipos .NET. Se o formato da data de nascimento não estiver compatível com o esperado pelo model binder, ele pode não ser capaz de converter corretamente e atribuir o valor padrão. Verifique se o formato da data de nascimento enviada na requisição está em conformidade com o esperado pela API.

  4. Validação de Modelo: Certifique-se de que a validação do modelo não está falhando para o campo DataNascimento. Se houver alguma regra de validação que não esteja sendo atendida, o valor pode não ser definido corretamente.

  5. Debugging: Utilize a depuração para acompanhar o fluxo de dados desde o recebimento do DTO até a chamada do método CreateAsync do UserManager. Isso ajudará a identificar em que ponto o valor da data de nascimento está sendo perdido ou alterado.

  6. Verificação do Banco de Dados: Assegure-se de que o campo DataNascimento na tabela do banco de dados esteja configurado para aceitar datas. Se o campo estiver definido como NOT NULL sem um valor padrão apropriado, e se um valor válido não for fornecido, o banco de dados pode estar preenchendo-o com o valor mínimo.

Se após essas verificações o problema persistir, você pode compartilhar um trecho do código onde o CreateUsuarioDto é recebido e mapeado para a entidade Usuario, assim como o trecho onde o usuário é salvo no banco de dados. Com essas informações, poderei fornecer uma orientação mais precisa.

Espero ter ajudado e bons estudos!

solução!

Olá, Renan.

Realizei o passo a passo e consegui resolver o problema. Obrigado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software