Automapper сглаживает вложенные списки, содержащие объекты - PullRequest
0 голосов
/ 13 октября 2019

Новый для Autopper, так что, если это тривиально, я был бы признателен за понимание, пожалуйста ... У меня есть JSON для чтения в объект DTO, который имеет такую ​​структуру TopObject-> GeneralContainer-> SubObjectCompleteContainer-> ListsOfCompletePartsOfTopObject (а также TopObject-> GeneralContainer-> SubObjectIncompleteContainer-> ListsOfIncompletePartsOfTopObject, но яугадывание решения для первого было бы аналогичным для второго), которое я хотел бы отобразить на (два многократных) объекта модели представления, содержащих верхний объект вместе с некоторыми данными из контейнерных и только эти списки деталей без этих внутри контейнеров. Итак, чтобы упростить, один объект, содержащий список полных, а другие неполные части, таким образом, эффективно сглаживает эти контейнеры и извлекает только некоторую общую информацию Id / описания из этих объектов-контейнеров ... это даже возможно и как угодно, поскольку я пыталсясоздать карту с помощью linq, но если мои внутренние объекты зависят от идентификатора из верхнего объекта, как получить этот идентификатор во внутреннем отображении ...

Это то, что я думал, но проблема, скажем такСвойство имени отдельной детали. Я получаю сопоставленное свойство только из первого в списке из-за FirstOrDefault ():

cfg.CreateMap<TopObjectDTO, CompleteTopObjectViewModel>()
                        .ForMember(dest => dest.Name, opts => opts.MapFrom(src => src.FullContainer.CompletedParts.Where(x => x.TopObjectId == src.Id).FirstOrDefault().Name)));

Мне нужно указать его, чтобы отобразить внутренний объект на viemodel, нодля его внутреннего списка деталей просто наметьте соответствующий объект и сделайте это как по внешнему, так и по внутреннему объекту.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...