繁体   English   中英

AutoMapper - 如何从源的单一属性 map 整个 object?

[英]AutoMapper - How to map entire object from source's single property?

为目标类型共享一些源属性的两种类型创建 map 非常简单:

CreateMap<Type1, Type2>().IgnoreAllNonExisting();

但是如果我在其他属性中有Type1怎么办? 我们称之为 - ParentType 目前,我这样做

CreateMap<ParentType, Type2>().IgnoreAllNonExisting()
  .ForMember(t => t.Prop1, opt => opt.MapFrom(l => l.Child.Prop1))
  .ForMember(t => t.Prop2, opt => opt.MapFrom(l => l.Child.Prop2))
  .ForMember(t => t.Prop3, opt => opt.MapFrom(l => l.Child.Prop3))

Child属性的类型为Type1 因此,我必须分别对每个属性进行 map。 对于这种情况有更好的方法吗?

正如@Lucian 已经建议的那样,使用指向子 object 的IncludeMembers(p => p.Child)映射到目标 object 时也应该使用它:

CreateMap<Type1, Type2>();
CreateMap<ParentType, Type2>()
    .IncludeMembers(p => p.Child);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM