考虑一个客户有很多订单。
context.AddLink(customer, "orders", order);
context.SetLink(order, "customer", customer);
数据存储将使用这些调用中的一个或另一个正确更新(在调用SaveChanges
之后)。那么为什么还要在WCF数据服务的文档中反复显示这两个问题呢?
答案 0 :(得分:3)
你应该同时打电话,因为你必须在两个方向手动设置链接,除非你只需要保存其中一个链接。
context.AddLink(customer, "orders", order);
告诉上下文,客户与您的订单列表之间存在链接(订单必须是集合)。
context.SetLink(order, "customer", customer);
告诉上下文订单已连接到客户。然后在SaveChanges
上,将在数据库中创建链接,您将不会有参考问题。
您也可以调用AddRelatedObject
,但它也会调用AddObject
,因此该对象无法在上下文中工作。 MSDN AddRelatedObject
// Add links for the one-to-many relationships.
context.AddLink(order, "Order_Details", newItem);
context.AddLink(selectedProduct, "Order_Details", newItem);
// Set reference links for the many-to-one relationships.
context.SetLink(newItem, "Order", order);
context.SetLink(newItem, "Product", selectedProduct);
答案 1 :(得分:0)
用于在“to-many”关系中添加ref(与客户关联的新订单),调用AddLink。换句话说(“to-one”)调用setlink。