我有以下表格设置:
我试图在订单表中添加记录,将2个产品分配到订单中,如下所示:
var order = new Order();
order.Products.Add(new Product {ID=1});
order.Products.Add(new Product {ID=2});
db.SaveChanges();
问题是:保存订单时,会有两个产品插入到数据库中,而不是引用已存在的产品记录。
请帮忙。感谢。
答案 0 :(得分:6)
您应该使用db而不是创建新Product,如下例所示:
var order = new Order();
order.Products.Add(db.Products.First(p => p.ID = 1));
order.Products.Add(db.Products.First(p => p.ID = 2));
db.SaveChanges();
或者,您需要在创建产品后“更新参考”。 你可以这样做:
var product = new Product() { ID = 1 };
db.Attach(product);
order.Products.Add(product);