條件映射(Conditional Mapping)
AutoMapper 允許你給屬性添加條件斥难,只有在條件成立的情況下該成員才會被映射了袁。
這可以用在嘗試將int 映射到 無符號 int的情況下囤屹。
class Foo{
public int baz;
}
class Bar {
public uint baz;
}
在以下映射中屬性baz只有在源屬性baz大于等于零的情況下才會被映射。
Mapper.Initialize(cfg => {
cfg.CreateMap<Foo,Bar>()
.ForMember(dest => dest.baz, opt => opt.Condition(src => (src.baz >= 0)));
});
前提條件
類似的還有一個前提條件。不同之處在于它比映射處理運(yùn)行的更早揽祥,在源值解析之前(想想MapFrom 或者 ResolveUsing)。前提條件被調(diào)用之后桨醋,再解析映射的源是哪個棚瘟,然后條件被調(diào)用自己完成目標(biāo)值得分配。