Это то, что я делаю:
[HttpPost]
public ActionResult Edit(int id, Account model)
{
try
{
Account accountEdited = accountRepository.Get(id);
TryUpdateModel(accountEdited);
ctx.SaveChanges();
return RedirectToAction("Details", new { id = id });
}
catch (Exception ex)
{
return View();
}
}
Первоначальный вызов хранилища гарантирует, что объект находится на графике в состоянии Неизменено .Встроенный в MVC метод TryUpdateModel
затем объединит два объекта (объект accountEdited
и данные публикации формы, привязанные к модели).
Это приведет к тому, что объект будет в Modified
state.
Простой вызов SaveChanges()
для контекста объекта затем подтолкнет изменения в базу данных.
Я пробовал такие методы, как "метод заглушки", но он представил мирболи (в основном это связано с отношениями), так что это самый простой подход, который хорошо работает.
HTH