【发布时间】:2013-01-19 11:11:46
【问题描述】:
我有以下表格设置:
- 订单 (ID)
- 产品 (ID) [其中 ProductID 1 和 2 已经存在]
- OrderProduct(OrderId、ProductID)[两个键 FK'ng 到 Order 和 Product 表]
我正在尝试向 Order 表添加一条记录,将 2 个产品分配到订单中,如下所示:
var order = new Order();
order.Products.Add(new Product {ID=1});
order.Products.Add(new Product {ID=2});
db.SaveChanges();
问题是:保存订单时,两个产品被插入到数据库中,而不是引用已经存在的产品记录。
请帮忙。谢谢。
【问题讨论】:
-
您正在创建 2 个新的 Product 对象。您不能从数据库中检索对象并通过引用将它们存储在您的产品列表中吗?
-
@Haxx,谢谢。你可以告诉我吗。 referenced 产品与创建包含更新 FK'S 所需的确切 PK's 的新对象有什么区别。
-
因为我认为 EF 不能按照您期望的方式工作。试试下面的答案,看看表是如何在 sqlserver 中设计的。将使用 FK 更新产品以进行订购。我不确定,但我认为你正试图做相反的事情。无论如何,我的答案与下面的完全相同,并且有效:)。希望我不会以这种方式让事情变得更加混乱...... :)
标签: c# entity-framework orm ado.net