EF4.1 Combobox связан с навигационными свойствами объекта, как сохранить объект новой навигации - PullRequest
1 голос
/ 21 ноября 2011

Хорошо, у меня есть пара DataBindingSources, указывающих на контекст. [DbSet name] .Local.ToBindingList ()

есть представление данных, привязанное к такому источнику привязки, у меня есть 2 столбца, настроенных на еще 2 источника данных привязки, таким образомпри изменении значений с помощью выпадающих списков изменяется свойство навигации родительского объекта.Пока все хорошо, теперь при проверке состояния с помощью:

if(context.Entry(databindingsource.Current).State == EntityState.Modified)
    context.SaveChanges();

состояние не изменяется, но фактически не изменяется, я понимаю, что это было задумано, и это не ошибка.Я не понимаю, как мне сохранить измененное свойство Navigation.Как правильно это сделать?Предполагается ли перехватывать событие OnChange из выпадающего списка, проверять содержимое и устанавливать для объекта значение Modified вручную?разве нет более элегантного способа?

примечания:

  • отключена отложенная загрузка
  • все объекты загружаются до того, как все будет привязано к сетке данных, выпадающим спискам и текстовым полямих относительные источники данных
  • все изменения сохраняются при возникновении события DataBindingSource.CurrentItemChanged
  • свойства навигации устанавливаются для уже извлеченных объектов, то есть объектов с неизменным состоянием /

Я хотел бы опубликовать код, но это довольно беспорядок, я думаю, объяснения проблемы должно быть достаточно.но если нет, то я более чем готов.

РЕДАКТИРОВАТЬ: модель сгенерирована, сначала база данных, база данных не содержит FK, поэтому все ассоциации создаются после генерации объекта

...