在旧版的Automapper中,使用IncludeMembers方法可以手动将对象的属性值映射到一个更复杂的类型中,而且该方法还可以嵌套使用。但是,从Automapper 5.0开始,IncludeMembers方法被弃用,Automapper官方建议使用MapFrom和ForMember方法来替代IncludeMembers方法。
以下示例演示了如何将IncludeMembers方法替换为MapFrom和ForMember方法:
旧代码:
CreateMap()
.ForMember(dest => dest.Total,
opt => opt.MapFrom(src => src.Items.Sum(i => i.Price * i.Quantity)))
.IncludeMembers(src => src.Customer);
新代码:
CreateMap()
.ForMember(dest => dest.Total,
opt => opt.MapFrom(src => src.Items.Sum(i => i.Price * i.Quantity)))
.ForMember(dest => dest.Customer,
opt => opt.MapFrom(src => src.Customer));
在新版本的代码中,我们使用ForMember方法代替了IncludeMembers方法,使代码更加清晰易懂。