是否可以根据源属性的值忽略映射成员?
例如,如果我们有:
public class Car
{
public int Id { get; set; }
public string Code { get; set; }
}
public class CarViewModel
{
public int Id { get; set; }
public string Code { get; set; }
}
我正在寻找类似的东西
Mapper.CreateMap<CarViewModel, Car>()
.ForMember(dest => dest.Code,
opt => opt.Ignore().If(source => source.Id == 0))
到目前为止,我唯一的解决方案就是使用两种不同的视图模型并为每个视图模型创建不同的映射。
Ignore() 功能严格适用于您从未映射的成员,因为这些成员在配置验证中也会被跳过。我检查了几个选项,但看起来自定义值解析器之类的东西无法解决问题。
Use the 健康)状况() http://docs.automapper.org/en/stable/Conditional-mapping.html当条件为真时映射成员的功能:
Mapper.CreateMap<CarViewModel, Car>()
.ForMember(dest => dest.Code, opt => opt.Condition(source => source.Id != 0))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)