我试图忽视一些成员,并把一些条件对目前的成员:
CreateMap<UpdateProfileViewModel, UserSettingModel>()
.ForMember(dest => dest.FirstName, opts => opts.MapFrom(src => src.FirstName))
.ForMember(dest => dest.LastName, opts => opts.MapFrom(src => src.LastName))
.ForMember(dest => dest.PhoneNumber, opts => opts.MapFrom(src => src.PhoneNumber))
.ForAllMembers(opts => opts.Condition((src, dest, srcMember) => srcMember != null))
.ForAllOtherMembers(opts => opts.Ignore());
ForAllMembers我不能使用,因为我已经使用ForAllMembers。
我怎么能忽略来自源空值,并在同一时间忽略所有其他成员映射?
所以,因为ForAllMembers
和ForAllOtherMembers
回报void
我建议使用opts.Condition()
方法,虽然这种解决方案也不是那么的优雅
CreateMap<UpdateProfileViewModel, UserSettingModel>()
.ForMember(dest => dest.FirstName, opts => { opts.Condition(p => p.FirstName != null); opts.MapFrom(p => p.FirstName); })
.ForMember(dest => dest.LastName, opts => { opts.Condition(p => p.LastName != null); opts.MapFrom(p => p.LastName); })
.ForMember(dest => dest.PhoneNumber, opts => { opts.Condition(p => p.PhoneNumber != null); opts.MapFrom(p => p.PhoneNumber); })
.ForAllOtherMembers(opts => opts.Ignore());