Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Duvida sobre a classe FilmeProfile

Aprendi, nos capítulo do CREATE e do UPDATE, a:

  1. Instalar o AutoMapper no projeto
  2. Adicionar o AutoMapper no escopo do projeto inteiro
builder.Services.AddAutoMapper(AppDomain.CurrentDomain.GetAssemblies());
  1. Criar um DTO para o create e outro para o update
  2. Fazer uma classe FilmeProfile para mapear o DTO (CreateFilmeDto e UpdateFilmeDto) à classe do modelo (Filme).

A dúvida é: este nome FilmeProfile (ou o caminho em que ele fica) é especial? Como que o dotnet "sabe" que vai encontrar, nesta classe, o mapeamento entre os DTOs e a classe do modelo? Achei que, em algum lugar, deveria existir algo dizendo assim: "olha, para mapear Filme para CreateFilmeDto e UpdateFilmeDto, a classe utilizada é FilmeProfile". Como não vi isso de modo explícito, ficou parecendo algo automágico...

1 resposta
solução!

Olá, Rafael. Tudo bem?

O nome FilmeProfile em si não é especial, e o AutoMapper não depende do nome da classe ou do caminho onde ela está localizada para funcionar. O que realmente importa é que a classe herda de Profile, que é uma classe do AutoMapper. Quando você cria uma classe que herda de Profile, você está definindo um conjunto de configurações de mapeamento.

O AutoMapper utiliza a linha de código builder.Services.AddAutoMapper(AppDomain.CurrentDomain.GetAssemblies()); para procurar automaticamente todas as classes que herdam de Profile dentro dos assemblies do seu projeto. Isso significa que ele vai encontrar a sua classe FilmeProfile e aplicar as configurações de mapeamento que você definiu dentro dela.

No seu caso, dentro do construtor da classe FilmeProfile, você definiu os mapeamentos com CreateMap<CreateFilmeDto, Filme>(); e CreateMap<UpdateFilmeDto, Filme>();. É isso que instrui o AutoMapper sobre como converter entre essas classes.

Um exemplo prático: se você tivesse outra classe de perfil, como UsuarioProfile, também herdando de Profile e com suas próprias configurações de mapeamento, o AutoMapper a encontraria e aplicaria essas configurações também, sem que você precisasse fazer nada além de adicionar a linha AddAutoMapper.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!