Depois que alterei as propriedades da model pro DTO e apaguei "Id, os métodos "AdicionaFilme" e "RecuperaFilmesPorId" não reconhece "filmes.Id".
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Depois que alterei as propriedades da model pro DTO e apaguei "Id, os métodos "AdicionaFilme" e "RecuperaFilmesPorId" não reconhece "filmes.Id".
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.
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.
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; }
}
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.