在手动映射中,我可以执行以下操作:
//LINQ Query here...
.Select(x => new ViewModel
{
BooleanProperty = x.OtherProperty > 3
})
如果OtherProperty为4或更大,则BooleanProperty将为true,否则为false。我一直无法弄清楚如何在AutoMapper中执行此操作。我尝试了以下方法:
.ForMember(dest => dest.BooleanProperty, opt => opt.ResolveUsing(src => src.OtherProperty > 3))
.ForMember(dest => dest.BooleanProperty, opt => opt.MapFrom(src => src.OtherProperty > 3))
.ForMember(dest => dest.BooleanProperty, opt => opt.ResolveUsing<BooleanPropertyResolver>())
BooleanPropertyResolver:
public class CustomResolver : IValueResolver<Address, AddressFormViewModel, bool>
{
public bool Resolve(Address source, AddressFormViewModel destination, bool member, ResolutionContext context)
{
return source.OtherProperty > 3;
}
}
对于所有其他方法,当OtherProperty为4时,BooleanProperty仍为false。如何在AutoMapper顶部的手动映射中复制功能?