Проблема времени сохранения в базе данных приводит к шаблону Единица работы . Linq-to-Entities имеет разумную реализацию этого с ObjectContext , где данные помещаются в очередь в контексте и затем сохраняются в базе данных, когда логическая единица работы завершена.
В вашем примере вы уже устанавливаете свойство для объекта L2E, Person, которое, вероятно, связано с контекстом. Когда вы вызываете ObjectContext.SaveChanges , это будет сохранено без необходимости использования метода updateFirstname
.
Вы должны решить, когда вызывать ObjectContext.SaveChanges
(и, таким образом, завершить единицу работы), и делать это, когда пользователь явно сохраняет данные или когда форма закрыта (опционально, предлагая пользователю совершить или отбросить изменения) это разумный подход здесь. Чтобы реализовать это, ваши viewmodels ссылаются на ObjectContext и могут вызывать метод SaveChanges
, когда выполняется действие пользователя (обычно моделируемое с помощью WPF ICommand
, публикуемого viewmodel и привязанного к представлению ).