我试图让 Automapper 仅在等于特定值时更改 dsetination 值。所以我不在乎源值是什么我只想在映射之前查看目标值,如果它等于 0 那么我想做映射,如果它 >0 那么我不想映射它。
到目前为止,我只能想出一种方法来做到这一点,但反过来。它查看源,如果源值满足它将映射的条件。看起来像这样:
CreateMap<SurveyResource, Survey>()
.ForMember(dest => dest.ClientId, opt =>
{
opt.Condition(src => src.ClientId == 0);
opt.MapFrom(src => src.ClientId);
});
Run Code Online (Sandbox Code Playgroud)
这将看起来像 SurveyResource ClientId 值,如果它等于 0,那么它将粘贴 0 到目的地(即,它将粘贴客户端 ID 的当前源值)。有谁知道如何以相反的方式做到这一点?我是否必须使用自定义值解析器?
小智 7
伙计,你离我太近了!
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);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3052 次 |
| 最近记录: |