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

Quando usar e quando não usar o virtual?

Já existe uma pergunta aqui no fórum com essa mesma dúvida (https://cursos.alura.com.br/forum/topico-quando-usar-e-quando-nao-usar-o-virtual-firsordefault-ou-find-36643), mas pra mim não ficou muito claro.

Se o instrutor realmente esqueceu de marcar como virtual, e tudo funcionou, o virtual serve para que então?

1 resposta
solução!

Olá Flavio,

com ou sem o virtual, o entity framework vai criar o relacionamento entre as duas classes. O que muda na verdade é na hora que você vai fazer a consulta, quando usamos o virtual é usado um comportamento chamado lazy load. A ideia é se eu buscar por uma Venda, a propriedade Cliente vai começar vazia, mesmo que no banco exista um cliente para esta venda. Ele só vai buscar este cliente na primeira vez que eu chamar esta propriedade.

Neste post da microsoft eles mostram esta diferença do lazy load.