我是AutoMapper的新手,想要设置两个要映射的属性,但其他15个要忽略。
我的研究和阅读如here表示有3种选择。
使用Ignore(),例如:(当前可以,但它可以工作但是很臃肿)
d => d.IgnoreMe, opt => opt.Ignore()
使用[IgnoreMapAttribute]进行批注。希望我能,但是我不想调整对象。
然而,在我看来,这些选项是解决方法,我只是没有正确使用AutoMapper?
我正在寻找的是:
Mapper.CreateMap<Customer, DropPointModel>()
.ForMember(dest => dest.CustomerId,
opts => opts.MapFrom(src => src.Id))
.ForMember(dest => dest.VendorId,
opts => opts.MapFrom(src => src.VendorId))
.IgnoreAllOtherMappings();
在AutoMapper中是否存在这些行中的某些内容并且我没有正确实现,或者我是否正确并且只需要编写扩展方法。如果是后者,我会在这里回复其他人。
答案 0 :(得分:0)
您是否尝试使用以下
之类的东西public static class MappingExpressionExtensions
{
public static IMappingExpression<TSource, TDest> IgnoreAllUnmapped<TSource, TDest>(this IMappingExpression<TSource, TDest> expression)
{
expression.ForAllMembers(opt => opt.Ignore());
return expression;
}
}
.ForMember(dest => dest.CustomerId,
opts => opts.MapFrom(src => src.Id))
.ForMember(dest => dest.VendorId,
opts => opts.MapFrom(src => src.VendorId))
.IgnoreAllUnmapped();
或者
.ForMember(dest => dest.CustomerId,
opts => opts.MapFrom(src => src.Id))
.ForMember(dest => dest.VendorId,
opts => opts.MapFrom(src => src.VendorId))
.ForAllMembers(opt => opt.Ignore());
答案 1 :(得分:0)