我试图让Automapper只有在等于特定值时才会改变dsetination值。所以我不关心源值是什么我只想在映射之前查看目标值,如果它等于0那么我想要进行映射,如果它是> 0然后我不想想要映射这个。
到目前为止,我只能提出一种方法来做到这一点,但反过来说。它查看源,如果源值满足它将映射的条件。看起来像这样:
CreateMap<SurveyResource, Survey>()
.ForMember(dest => dest.ClientId, opt =>
{
opt.Condition(src => src.ClientId == 0);
opt.MapFrom(src => src.ClientId);
});
这将看起来像SurveyResource ClientId值,如果它等于0,那么它将0粘贴到目标(即它将粘贴客户端ID的当前源值)。有没有人知道如何做到这一点?我是否必须使用自定义值解析器?
答案 0 :(得分:2)
伙计,你太近了!
CreateMap<SurveyResource, Survey>()
.ForMember(dest => dest.ClientId, opt =>
{
opt.Condition((src, dest) => dest.ClientId == 0);// suppose dest is not null.
opt.MapFrom(src => src.ClientId);
});