Как обновить свойства навигации / связанные таблицы в 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 Коллекция также.

Другие вопросы по тегам