I would model the classes as follows:
public class Pedido
{
public int Id { get; set; }
public DateTime Data { get; set; }
public virtual List<Produto> Produtos { get; set; }
}
public class Produto
{
public int Id { get; set; }
public string Nome { get; set; }
}
public class Context : DbContext
{
public Context() : base("DefaultConnection")
{
}
public DbSet<Pedido> Pedidos { get; set; }
public DbSet<Produto> Produtos { get; set; }
}
In this case I used the virtual for the example, if I was using EF as ORM, I also changed Pedidoid and Produtoid to Id, just to stay standard.
Remembering that in this example are showing Objects of our application, and not in the Data Model (SQL).
If your "Itempedido" in the database has no property (other than the Product Id and Order Id), it is not necessary to create an intermediate object in C# called Itempedido, it makes sense to create this object if your Itempedido has Quantity for example.
Below is an example of how to use a console:
class Program
{
static void Main(string[] args)
{
var context = new Context();
var produto = new Produto() { Nome = "Produto 1" };
var produto2 = new Produto() { Nome = "Produto 2" };
context.Produtos.Add(produto);
context.Produtos.Add(produto2);
context.SaveChanges();
var pedido = new Pedido() { Data = DateTime.Now };
pedido.Produtos = new List<Produto>();
pedido.Produtos.Add(produto);
pedido.Produtos.Add(produto2);
context.Pedidos.Add(pedido);
context.SaveChanges();
}
}
It depends, right. Are you using any ORM? If so, which one? Or do you not even want to connect to the database?
– user48732