Quando o console exibe os itens está indo só o nome da classe e não o nome de cada item da tabela produtos?
Forma que o console está exibindo:
Mostrando os produtos da promoção... Alura.Loja.Testes.ConsoleApp.Produto Alura.Loja.Testes.ConsoleApp.Produto Alura.Loja.Testes.ConsoleApp.Produto Press any key to continue . . .
Validei cada item de cada classe e aparentemente estão iguais as da vídeo aula. Mas com certeza devo esta deixando alguma coisa passar despercebida.
using (var contexto2 = new LojaContext()) {
var promocao = contexto2 .Promocoes .Include(p => p.Produtos) .ThenInclude(pp => pp.Produto) .FirstOrDefault();
Console.WriteLine("\nMostrando os produtos da promoção..."); foreach (var item in promocao.Produtos) { Console.WriteLine(item.Produto);
}
public class Promocao { public int id { get; set; } public string Descricao { get; internal set; } public DateTime DataInicio { get; internal set; } public DateTime DataTermino { get; internal set; } public IList Produtos { get; internal set; }
public Promocao() { this.Produtos = new List(); } public void IncluiProduto(Produto produto) { this.Produtos.Add(new PromocaoProduto() { Produto = produto }); } } public class Produto { public int Id { get; internal set; } public string Nome { get; internal set; } public string Categoria { get; internal set; } public double PrecoUnitario { get; internal set; } public string Unidade { get; set; } public IList Promocoes { get; set; } }
public class PromocaoProduto {
public int ProdutoId { get; set; } public int PromocaoID { get; set; } public Produto Produto { get; set; } public Promocao Promocao { get; set; }
}