我正在与第三方API集成,而第三方API正在返回一个复杂的数据结构,在其中的一部分我有以下关系。
public class Parent{
public List<SmartLink> SmartLink { get; set; }
}
SmartLink
对象如下所示:
public class SmartLink {
public Address AddressInfo { get; set; }
}
我试图以多种方式映射它,其中一种方式在下面,但我仍然在AddressInfo对象上得到一个null。
cfg.CreateMap<Address, AddressInfo>();
cfg.CreateMap<Source, Parent>()
//This is not allowed since Automapper cannot map to 2nd level
.ForMember(d => d.SmartLink.AddressInfo, map => map.MapFrom(src => src.Smartlink.ToList().Select(addr => addr.Address)));
以下一行非常有效:
.ForMember(d => d.SmartLink, map => map.MapFrom(s => s.Smartlink.ToList()))
如何使用Automapper(任何指针)映射/展平第3级属性?
答案 0 :(得分:0)
我对此已经过时了。我只是添加了以下映射,它起作用了。
cfg.CreateMap<Address, AddressInfo>();
cfg.CreateMap<SmartlinkPart, SmartLink>(MemberList.Destination)
.ForMember(d => d.AddressInfo, map => map.MapFrom(s => s.Address));
这个想法是,对于成员AddressInfo
,上面的第一行将提供它的映射指令。