Segui exatamente como estava no material, baixei a versão correta do Microsoft.EntityFrameworkCore.Proxies (que no caso é a mesma versão do meu EF, se não dava problema) e mesmo assim estava dando uma exceção ao fazer o mapeamento:
CreateMap<Cinema, ReadCinemaDTO>().ForMember(dto => dto.Endereco, opt => opt.MapFrom(cinema => cinema.Endereco));
Depois de muito tentar achei a seguinte solução:
[HttpGet]
public IEnumerable<ReadCinemaDTO> RecuperarCinemas()
{
return _mapper.Map<List<ReadCinemaDTO>>(_context.Cinemas.Include(cinema => cinema.Endereco));
}
Sim, esse é o método GET /cinema do CinemaController, nota-se que para cada Cinema no FilmeContext o método Include() adiciona a propriedade Cinema.Endereco e retorna juntamente no JSON, assim evitando o retorno null, exemplo:
{
"id": 3,
"nome": "Cinemark",
"endereco": {
"id": 2,
"logradouro": "Rua das Alfaces",
"numero": 221
}
}
Se alguém souber uma outra maneira melhor, por favor comente...