Отношение автоперсонажа 3-го уровня

132
9

Я интегрирую с сторонним API, который возвращает сложную структуру данных, и в ее части у меня есть следующее отношение.

    public class Parent{
public List<SmartLink> SmartLink { get; set; }
}

Объект SmartLink выглядит следующим образом:

public class SmartLink {
public Address AddressInfo { get; set; }
}

Я попытался отобразить его несколькими способами, один из них ниже, но я все еще получаю нуль в объекте AddressInfo.

 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, любые указатели?

спросил(а) 2021-01-14T00:44:06+03:00 1 неделя назад
1
Решение
73

Я передумал. Я просто добавил следующее отображение, и оно сработало.

cfg.CreateMap<Address, AddressInfo>();
cfg.CreateMap<SmartlinkPart, SmartLink>(MemberList.Destination)
.ForMember(d => d.AddressInfo, map => map.MapFrom(s => s.Address));

Идея заключается в том, что для члена AddressInfo первая строка, AddressInfo выше, предоставит ему инструкцию отображения.

ответил(а) 2021-01-14T00:44:06+03:00 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема