Olá, Antonione!
Pelo trecho de código que você compartilhou, parece que você está fazendo a configuração correta para habilitar o Lazy Loading Proxies. A chamada do método AddDbContext
dentro do método ConfigureServices
da classe Startup
está correta, utilizando o UseLazyLoadingProxies()
para ativar o Lazy Loading Proxies.
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<Data.AppDbContext>(opts => opts.UseMySQL(Configuration.GetConnectionString("FilmesConnection")).UseLazyLoadingProxies());
services.AddControllers();
}
No entanto, é importante lembrar que o Lazy Loading Proxies só funciona se as propriedades de navegação em suas entidades forem declaradas como virtual
, como é mostrado no exemplo da classe Endereco
e da classe Cinema
na aula/exercício que você compartilhou:
public class Endereco
{
// outras propriedades
public virtual Cinema Cinema { get; set; }
}
public class Cinema
{
// outras propriedades
public virtual Endereco Endereco { get; set; }
}
Essa declaração virtual
é necessária para que o EF Core possa criar proxies para essas propriedades e realizar o carregamento preguiçoso (Lazy Loading) quando necessário.
No entanto, é importante ressaltar que o uso do Lazy Loading Proxies pode trazer alguns problemas, como o problema de ciclo de informações mencionado na aula/exercício. Para evitar esse problema, é recomendado o uso de anotações como [JsonIgnore]
ou [Ignore]
para indicar ao sistema de serialização (por exemplo, ao retornar um objeto JSON) que a propriedade deve ser ignorada.
Espero que isso tenha esclarecido suas dúvidas! Se tiver mais alguma pergunta, é só me dizer. Espero ter ajudado e bons estudos!