给定这两个对象(我使用非常不同的对象来更好地阐明):
public class Car
{
public string Brand {get;set;}
public int Speed {get;set;}
}
public class Apple
{
public string Variety {get;set;}
public int Production {get;set;}
}
AutoMapper
定义了projection
允许映射具有不同名称的属性:
var config = new MapperConfiguration(cfg =>
{
cfg.CreateMap<Car, Apple>()
.ForMember(dest => dest.Variety, opt => opt.MapFrom( src => src.Brand))
.ForMember(dest => dest.Production, opt => opt.MapFrom(src => src.Speed))
});
这应该有效,但是:
有没有什么办法可以映射directly属性按照它们在类中定义的顺序排列?:
Brand -> Variety
Speed -> Production
我在用自动映射器4.2.1
有什么方法可以按照类中定义的顺序直接映射属性吗?
否,但您可以显式设置映射顺序,以便某些成员先于其他成员映射。这允许您为一个属性提供自定义映射,该属性可能依赖于您需要已映射的另一目标属性。
CreateMap<SourceType, DestType>()
.ForMember(
dst => dst.Property1,
opt.SetMappingOrder(0))
.ForMember(
dst => dst.Property2,
opts =>
{
opts.SetMappingOrder(20);
opts.ResolveUsing<ResolverThatNeedsProperty1ToBeMappedAlready>();
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)