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

Duvida sobre construção

no meu caso não estava funcionando o Lazy antes de MySql, porem testando a aplicação com o codigo abaixo o mesmo funcionou. minha duvida é sobre essa construção, se está correta ou se algo que eu fiz está errado.

public void ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext<Data.AppDbContext>(opts => opts.UseMySQL(Configuration.GetConnectionString("FilmesConnection")).UseLazyLoadingProxies());
            services.AddControllers();
1 resposta
solução!

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!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software