Я использую ASP.NET MVC 3 и Entity Framework 4.1.
Мне было интересно, что является предпочтительным методом обновления объекта, когда не все свойства указаны в сообщении HTTP.
Например, объект Order может иметь свойства Items, CreateDate и UpdateDate. В форме редактирования только свойство Items будет введено и опубликовано в Edit ActionMethod. Поэтому приведенный ниже базовый код не будет выполнен, поскольку свойства CreateDate и UpdateDate не включены в заказ.
[HttpPost]
public ActionResult Edit(Order order)
{
{
db.Entry(order).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(order);
}
Как лучше всего справиться с этой ситуацией? Для простых объектов, таких как этот порядок, я предполагаю, что CreateDate и UpdateDate могут храниться в скрытых полях, однако, для более сложных объектов (например, объектов с несколькими взаимосвязями «один ко многим»), если идентификатор объекта используется для получения полного объекта а затем перезаписать некоторые из его свойств значениями, отправленными обратно в форму ...