您是否可以拥有仅与明确匹配的AutoMapper映射属性

时间:2019-06-18 00:00:45

标签: c# automapper

有没有办法让AutoMapper仅映射明确匹配的属性?我的模型有一个UserAccountId属性,还有一个具有Id属性的导航属性UserAccount,如果用户发布了UserAccountId,我希望AutoMapper映射UserAccountId并保留UserAccount.Id为null;我希望避免使用“忽略”,因为这也会阻止我显式发布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 :(得分:0)

在这种情况下,请勿使用AutoMapper。它并不是为支持这种情况而构建的。

或使用ForPath(...)。忽略,但在这种情况下我不会使用我的库。