我具有以下表设置:实体框架:更新连接表
- 订单(ID)
- 产品(ID)[其中的ProductID 1和2已经存在]
- OrderProduct(OrderId,ProductID)[订购和产品表格中的两个键FK'ng]
和我'尝试将记录添加到订购表分配2个产品中的顺序如下:
var order = new Order();
order.Products.Add(new Product {ID=1});
order.Products.Add(new Product {ID=2});
db.SaveChanges();
的问题是:当保存订单,两款产品都得到插入到DB,而不是引用已存在的产品记录。
请帮忙。谢谢。
您正在创建2个新的产品对象。难道你不能从数据库中检索对象,并通过引用将它们存储在产品列表中? – bas
@哈克斯,谢谢。你可以告诉我吗。有一个**引用的**产品反对创建一个包含更新** FK ** **所需的确切** PK **的新对象之间有什么区别。 – dan
因为我认为EF没有按照您期望的方式工作。尝试下面的答案,看看这些表是如何在sqlserver中设计的。产品将用FK更新以订购。我不确定,但我认为你正试图做相反的事情。无论如何,我有下面的答案完全相同的东西,它的作品:)。希望我不会让它更混乱这种方式... :) – bas