Обработка частичных обновлений (недостаточная публикация) с помощью AutoMapper - PullRequest
0 голосов
/ 02 мая 2019

Я пытаюсь найти способ обработки частичных обновлений;ViewModel имеет 5 полей, но в Запросе отправляется только одно поле (т. Е. Отправляются только те поля, которые были изменены, вместо представления всей модели представления), поскольку нулевые значения не были явно отправлены для других полей, я не думаю, чтоони должны быть установлены в ноль.Так как AutoMapper не имеет какой-либо поддержки списка привязок, найти элегантное решение оказывается сложно ...

public virtual IActionResult Edit(int id, ViewModel1 viewModel)
{
  var model = GetModel(id);
  mapper.Map(viewModel, model);
  // any field that was not posted, but exists in the ViewModel1 is now null in the model
  ...
}

Единственный подход, который я могу придумать, - это использовать Request.Form.Keys.и Reflection для создания ExpandoObject, который содержит только опубликованные свойства, затем задайте CreateMissingTypeMaps и ValidateInlineMaps, чтобы позволить AutoMapper отображать динамические типы ... Просто кажется, что это грязный обходной путь для компенсации функциональности, отсутствующей в AutoMapper ...Есть ли стандартный способ справиться с этим?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...