Вы должны позвонить оба, поскольку вам нужно вручную установить ссылки в обоих направлениях, если только вам не нужно сохранять одну из ссылок.
context.AddLink(customer, "orders", order);
сообщает контексту, что есть ссылка от клиентов на ваш список заказов (заказ должен быть сборником).
context.SetLink(order, "customer", customer);
указывает, что заказ связан с клиентом. Затем на SaveChanges
ссылки будут созданы в базе данных, и у вас не будет проблем с рефералом.
Вместо этого вы также можете позвонить AddRelatedObject
, но он также вызывает AddObject
, поэтому объект уже не может быть в контексте для этого. MSDN AddRelatedObject
, скопированные из MSDN SetLink
// 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);
Ну, хорошо, но вопрос в том, почему так? Как я уже сказал в исходном вопросе, DataStore будет обновляться с использованием только одного из двух методов. Тем не менее, то, что проходит для документации, часто показывает использование обоих подряд. – Huh