Можете ли вы иметь AutoMapper только те свойства карты, которые явно совпадают - PullRequest
0 голосов
/ 18 июня 2019

Есть ли способ, чтобы AutoMapper отображал только те свойства карты, которые явно совпадают?Моя модель имеет свойство UserAccountId, а также свойство навигации UserAccount, которое имеет свойство Id. Если пользователь публикует UserAccountId, я хочу, чтобы AutoMapper отображал UserAccountId и оставлял UserAccount.Id пустым;Я бы хотел не использовать Ignore, поскольку это также помешает мне явно опубликовать UserAccount.Id.Я не могу найти информацию об управлении стратегией сопоставления имен AutoMapper ...

public class Role {
  public int Id {get; set;}
  public int UserAccountId {get; set;}
  public UserAccount UserAccount {get; set;}
  ...     
}

public class UserAccount {
  public int Id {get; set;}
  ...    
}

public class RoleViewModel {
  public int Id {get; set;}
  public int UserAccountId {get; set;}
}

public ActionResult AddRole(RoleViewModel viewModel) {
  var model = GetModel(viewModel.Id);
  Mapper.Map(viewModel, model); 
  //Do not infer and map UserAccount.Id
}

1 Ответ

0 голосов
/ 23 июня 2019

Не используйте AutoMapper для этого случая. Он не был создан для поддержки этого типа сценария.

Или используйте ForPath (...). Игнорировать, но я просто не буду использовать свою библиотеку для этого сценария.

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