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

Erro com filme.id no método "AdicionaFilme" após a alteração do modelo para o DTO

Depois que alterei as propriedades da model pro DTO e apaguei "Id, os métodos "AdicionaFilme" e "RecuperaFilmesPorId" não reconhece "filmes.Id".

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

3 respostas

Alterei o retorno do método de "void" para "IActionResult" e também não foi. A classe do modelo "Filme" está zerada, sem informação nenhuma, conforme feito no vídeo.

solução!

Olá, Matheus.

Tudo bem?

Pelo que você descreveu e pela imagem que você compartilhou, parece que o problema está relacionado ao mapeamento entre o CreateFilmeDto e a entidade Filme. A mensagem de erro indica que a classe Filme não possui uma propriedade Id, o que sugere que pode haver um problema na definição do modelo Filme.

Verifica se você não apagou a propriedade "Id" do Model "Filme", no caso você só deve apagar o "Id" somente do DTO.

A model "Filme" tem que estar assim com "Id":

using System.ComponentModel.DataAnnotations;

namespace FilmesApi.Models;

public class Filme
{
    [Key]
    [Required]
    public int Id { get; set; }
    [Required(ErrorMessage = "O título do filme é obrigatório")]
    public string Titulo { get; set; }
    [Required(ErrorMessage = "O gênero do filme é obrigatório")]
    [MaxLength(50, ErrorMessage = "O tamanho do gênero não pode exceder 50 caracteres")]
    public string Genero { get; set; }
    [Required]
    [Range(70, 600, ErrorMessage = "A duração deve ter entre 70 e 600 minutos")]
    public int Duracao { get; set; }
}

No curso o CreateFilmeDto deve estar assim:

using System.ComponentModel.DataAnnotations;

namespace FilmesApi.Data.Dtos;

public class CreateFilmeDto
{
    [Required(ErrorMessage = "O título do filme é obrigatório")]
    public string Titulo { get; set; }
    [Required(ErrorMessage = "O gênero do filme é obrigatório")]
    [StringLength(50, ErrorMessage = "O tamanho do gênero não pode exceder 50 caracteres")]
    public string Genero { get; set; }
    [Required]
    [Range(70, 600, ErrorMessage = "A duração deve ter entre 70 e 600 minutos")]
    public int Duracao { get; set; }
}

Espero ter ajudado. Qualquer dúvida manda aqui. Bons estudos.

Obrigado. Resolvido! No vídeo, me pareceu que todas as propriedades foram recortadas de Filme e coladas em CreateFilmeDto, deixando Filme vazio.