Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Propriedade Filme é null após inserir a sessão

Olá,

Do lado 1 (Filme) temos um Icollection de sessão e do lado N (sessão) temos uma propriedade virtual de Filme.

A propriedade Filme é virtual. Isso não seria suficiente para o entity popular o Filme automaticamente? O retorno é null.

2 respostas
solução!

Olá, Sílvio!

Você está correto em sua observação. A propriedade virtual "Filme" no modelo "Sessao" deveria permitir que o Entity Framework preenchesse automaticamente essa propriedade com o filme correspondente. No entanto, isso depende do carregamento preguiçoso (Lazy Loading) estar habilitado no seu contexto do Entity Framework.

O carregamento preguiçoso é um recurso que carrega automaticamente as propriedades de navegação quando você acessa pela primeira vez. Isso significa que, se você tentar acessar a propriedade "Filme" em uma instância de "Sessao", o Entity Framework irá automaticamente buscar o filme correspondente no banco de dados.

No entanto, se o carregamento preguiçoso não estiver habilitado, o Entity Framework não preencherá automaticamente essas propriedades de navegação. Nesse caso, você precisará usar o método .Include() em sua consulta para carregar explicitamente a propriedade "Filme".

Por exemplo, se você estiver buscando uma sessão específica e quiser que o filme correspondente seja carregado, você pode fazer algo assim:

var sessaoComFilme = _contexto.Sessoes
    .Include(s => s.Filme)
    .FirstOrDefault(s => s.Id == idDaSessao);

Nesse caso, o método .Include(s => s.Filme) está instruindo o Entity Framework para carregar o filme correspondente junto com a sessão.

Espero ter ajudado e bons estudos!

Obrigado Matheus!