хочу избавиться от ViewBag в моих представлениях, поэтому я провел небольшое исследование о моделях представления.Мне нравится идея использовать его для презентации, здесь нет вопросов.но я не понимаю, как лучше всего использовать viewmodels для обновления.
Прежде всего, почему бы мне не использовать свои EF-сущности с [MetadataType (typeof (User_Validation))]]?
public ActionResult Edit(User user)
{
...
}
, где пользователь - EntityObject.
тогда, если я, однако, использую для него view-модели, возникает другой вопрос: здесь люди считают, что следует использовать вложенные модели представления, но здесь - другое мнение («Они не являются оболочками вокруг моделей предметной области», говорит он).Кто прав?
также, каков наилучший способ обновить объект в действии после POST (без использования tryupdatemodel, потому что здесь и не только, люди против такого подхода).Я пытался использовать ApplyCurrentValues, но если есть какая-то сложная логика обновления с отношениями «многие ко многим», например, я получаю некоторые огромные ошибки EF.Вот почему мне нужно вручную установить поля моего EntityObject, которые я получаю из БД со значениями, которые вступают в действие.Что-то вроде этого:
public ActionResult Edit(User user)
{
if (ModelState.IsValid)
{
var userToUpdate = usersRepository.Get(user.UserId);
userToUpdate.Field1 = user.Field1;
...
// save
}
...
}
, где User - это EntityObject с классом проверки.
, поэтому, если я использую плоские видовые модели для получения значений из формы и AutoMapper для установки значений для моего объекта Entity, будет ли этосамый правильный способ работы с обновлениями или его можно автоматизировать еще больше?