Как обновить свойства навигации / связанные таблицы в EF?
У меня есть объект Customer
со свойством навигации Days
(days - это отдельная таблица, в которой есть - day_id, customer_id - FK).
mycontext.Customers.ApplyCurrentValues(cust);
mycontext.SaveChanges();
Это только обновило скалярные свойства Клиента, а не дни. Есть ли какой-нибудь умный способ обновить Дни? (без итерации вручную по дням..)? если нет - есть ли лучшая практика для обновления второй таблицы (дней)? Если это возможно, пожалуйста, напишите явный код должен быть использован.
PS Я в настоящее время использую EF 4.0
2 ответа
Нет, вы не можете сделать это без ручной итерации связанных объектов. Посмотрите на этот вопрос и ответ, который может быть полезным. MVC Entity Framework модифицирует дочерние объекты
Ты можешь использовать GraphDiff
библиотека, если вы хотите простой и легкий способ работы с отключенным объектом.
mycontext.UpdateGraph(cust, map => map.OwnedCollection(x => x.Days));
mycontext.SaveChanges();
Это вставит или обновит объект клиента, а также обновит Days
Коллекция также.