Olá, Lucas.
Na verdade, acho que não é isso. O problema está no momento que quero relacionar as informações do produto com o cadastro da venda. Segundo a lógica do curso, seu sistema vai ter uns produtos que podem ser vendidos, certo? No sistema, também consta quais são os usuários (clientes) que estarão comprando o produto. E aí, quando você aciona o mecanismo de venda, esse sistema deveria registrar que o ID da venda, o ID do cliente que realizou a compra, bem como o ID do produto que foi comprado. No LINQ utilizado no exercício, de alguma forma ele consegue pegar o ID do cliente e registrar, mas não faz o mesmo para o ID do produto. A real é que não entendi bem como funcionou esse LINQ.
De qualquer forma, aqui está o código de cadastramento de um produto:
Produto p = new Produto()
{
Nome = "Mouse",
Preco = 20,
Categoria = c
};
O ID dele não é um variável que deve ser informada, mas sim algo que é gerado automaticamente, com base na quantidade de produtos já inseridos do DB.
A tabela de vendas, no momento, se encontra assim.
A tabela de produtos, no momento, se encontra assim.
A tabela que relaciona a venda com um produto (ProdutoVenda), está assim.
O código utilizado para gerar a venda é:
EntidadesContext contexto = new EntidadesContext();
UsuarioDAO dao = new UsuarioDAO();
Usuario renan = dao.BuscaPorId(1);
Venda v = new Venda()
{
Cliente = renan
};
Produto p = contexto.Produtos.FirstOrDefault(prod => prod.ID == 1);
Produto p2 = contexto.Produtos.FirstOrDefault(prod => prod.ID == 2);
ProdutoVenda pv = new ProdutoVenda()
{
Venda = v,
Produto = p
};
ProdutoVenda pv2 = new ProdutoVenda()
{
Venda = v,
Produto = p2
};
contexto.Vendas.Add(v);
contexto.ProdutoVenda.Add(pv);
contexto.ProdutoVenda.Add(pv2);
contexto.SaveChanges();
Console.ReadLine();
Desculpa a explicação gigante, mas acho que agora cobri quase tudo que tinha para explicar a questão.