Отношение автоперсонажа 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 неделя назад
добавить комментарий
пожаловаться
Решение
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 неделя назад
добавить комментарий
пожаловаться
Ваш ответ
Еще в рубрике
84
Шаблон проектирования для фильтрации/подсчета коллекции в разных состояниях/шагах
73
Предложение Dynamic Group By в запросе linq
73
С# LINQ: В чем разница между моделью Pull и моделью Push?
60
linq к объектам простого запроса дает "ссылка на объект не установлена на экземпляр объекта"