实体框架:更新连接表
本文关键字:连接 更新 框架 实体 | 更新日期: 2023-09-27 17:54:38
我有以下表设置:
- 为 (ID)
- Product (ID)[其中ProductID 1和2已经存在]
- OrderProduct (OrderId, ProductID)[两个键连接到Order和Product表]
,我正试图添加一个记录到订单表分配2个产品在订单如下:
var order = new Order();
order.Products.Add(new Product {ID=1});
order.Products.Add(new Product {ID=2});
db.SaveChanges();
问题是:在保存订单时,将两个product插入到DB中,而不是引用已经存在的产品记录。
请帮助。谢谢。
您应该使用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);