У меня есть феллинг модель в моем проекте (EF5, DbContext, базы данных первого):Свойства навигации к той же таблице
клиента
InvoiceAddress -> Addresses (table)
DeliveryAddress -> Addresses (table)
Так я имею 2 внешних ключей в одной и той же таблицы ,
Когда я загружаю объект клиента, используя следующее заявление:
var cst = ctx.Customers.Where(c => c.CustomerID == 2).SingleOrDefault();
ctx.Entry(cst).Reference(c => c.InvoiceAddress).Load();
После загрузки ссылки на InvoiceAddress, то DeliveryAddress также загружаются. Однако это происходит только тогда, когда счет-фактура и идентификатор доставки одинаковы. Когда они не равны, DeliveryAddress не загружается. Что вызывает такое поведение?
Что вы зовёте? Тем не менее, я определил два разных внешних ключа в базе данных, а также есть два ключа в модели сущности. Когда я пытаюсь изменить значение адреса доставки, тогда возникает этот результат: «Нарушение ограничения ссылочной целостности произошло» – NRonald
@ Клавиши NRonald являются отдельными, но в конце они указывают на одни и те же данные. Исключением, которое вы указали, объясняется [здесь] (http://stackoverflow.com/a/11596430/1180426) и [здесь] (http://stackoverflow.com/a/12977804/1180426), без дальнейших подробностей трудно действительно знаю, что происходит ... –
Можно ли создать «2 разных» конечных точки? Единственное решение, которое я вижу сейчас, это установить для всех свойств навигации значение null перед Save(). – NRonald