1
resposta

SessaoProfile

Boa noite, tudo bem? Estou recebendo um erro ao adicionar sessão na chamada: ReadSessaoDTO readDTO = _mapper.Map(sessao);

Erro: AutoMapper.AutoMapperMappingException: Error mapping types.

Mapping types: Sessao -> ReadSessaoDTO FilmesAPI.Models.Sessao -> FilmesAPI.Data.DTO.ReadSessaoDTO

Type Map configuration: Sessao -> ReadSessaoDTO FilmesAPI.Models.Sessao -> FilmesAPI.Data.DTO.ReadSessaoDTO

Destination Member: HorarioDeInicio

---> System.NullReferenceException: Object reference not set to an instance of an object. at lambda_method79(Closure , Object , ReadSessaoDTO , ResolutionContext ) --- End of inner exception stack trace ---

Percebi que se eu não usar o "dto.Filme.Duracao" em CreateMap<Sessao, ReadSessaoDTO>() .ForMember(dto => dto.HorarioDeInicio, opts => opts .MapFrom(dto => dto.HorarioDeEncerramento.AddMinutes(dto.Filme.Duracao*(-1)))); o erro não ocorre mais, então acredito que o dto.Filme.Duracao esteja nulo. Como posso corrigir este problema? Abri a solução disponibilizada no curso e o erro não ocorre, mas não consegui identificar a diferença entre a solução do curso e a minha.

1 resposta

Tive um erro semelhante e, no meu caso, o problema é que havia sido cadastrado o HorarioDeEncerramento no banco de dados com o menor valor possível de DateTime. Ou seja, quando fazia a operação .MapFrom(dto => dto.HorarioDeEncerramento.AddMinutes(dto.Filme.Duracao * (-1))));, ocorria o erro. Ajustei os valores de HorarioDeEncerramento em todos os registros do banco e funcionou.