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

Dúvida no SELECT de Promocoes

No select de promoções temos o seguinte código:

var promocoes = context.Promocoes
                    .Include(p => p.Produtos)
                    .ThenInclude(pp => pp.Produto)
                    .FirstOrDefault();

Gostaria de entender como o EF sabe que, no primeiro Include estamos falando da classe de Produtos. E que no segundo (ThenInclude), estamos falando do produto da promoção.

Obrigado!

2 respostas

Analisando melhor o código, acho que sei a resposta da minha dúvida. Se alguém puder validar.

Temos o Contexto de Promocoes. Ou seja, estamos enxergando a classe Promocao. Precisamos descer alguns níveis para capturar os produtos da promoção. Para isso, temos o Include, usamos ele para chegar até a classe PromocaoProduto.

Dentro dela indicamos qual atributo queremos recuperar. Neste caso, é o Produto dentro de PromocaoProduto.

solução!

Olá Ramon, tudo certo?

É exatamente isso! Para não trazer a tabela que você está pedindo e consequentemente trazer todas as outras tabelas ligadas por chaves estrangeiras, então é necessário fazer o Include da tabela de produtos e adicionar também o resultado da tabela de promoções com ThenInclude.

Bons estudos!