MVC.net EF Save Automapper View Model не обновляет связанные объекты - PullRequest
1 голос
/ 06 октября 2011

Я использую MVC.net, и у меня есть 2 класса (случай и случайность) с отношением многие ко многим, я также использую автоматический картограф для копирования моделей представления в EF и наоборот. Теперь проблема, с которой я столкнулся, заключается в том, когда я делаю это:

Case theCase = Mapper.Map<CaseEditVM, Case>(theCaseEditVM);
theCase.Accidents.Clear();
UOW.Cases.Update(theCase);

Изменения в деле сохраняются, а таблица ссылок для несчастных случаев - нет. Ef полностью игнорирует изменения несчастных случаев.

Однако, когда я делаю:

Case theCase = UOW.Cases.GetByID(someid).Include("Accidents");
theCase.accidents.Clear();
UOW.Cases.Update(theCase);

EF правильно сохраняет свойство несчастных случаев.

Итак, из того, что я могу сказать, EF игнорирует свойство аварии, поскольку оно еще не отображено внутри EF. Однако, как мне сказать, при отображении модели View, я хочу, чтобы EF также обновлял связанные свойства?

1 Ответ

0 голосов
/ 06 октября 2011

Самый простой способ в вашем случае - сначала прикрепить дело к контексту и очистить изменения после того, как вы его прикрепили.В противном случае у вас будет много работы .Нет магии, которая сделала бы это для вас.EF не знает об изменениях в отношениях, которые вы внесли в отсоединенную сущность, и что еще хуже, когда вы присоединяете сущность к контексту, вы уже не знаете, какие записи были включены в свойство навигации, поэтому вы не можете настроить контекст, чтобы отразить это (должно быть выполнено для каждой связанной сущности) без перезагрузки всей сущности и объединения изменений между отделенной и присоединенной единицами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...