AutoMapper сопоставляет исходную вложенную коллекцию с другой коллекцией

РЕДАКТИРОВАТЬ: Название неверно, я пытаюсь сопоставить исходный список с исходным списком вложенной модели.

У меня возникли проблемы с попыткой сопоставить список с другим списком во вложенной модели. Своего рода и неплоские виды. Проблема в том, что я не знаю, как делать сопоставления.

Вот моя установка после моих неудачных попыток сопоставления:

public class DestinationModel
{
    public DestinationNestedViewModel sestinationNestedViewModel { get; set; }
}

public class DestinationNestedViewModel
{
    public List<ItemModel> NestedList { get; set; }
}

public class SourceModel
{
    public List<Item> SourceList { get; set; }
}

Где Item и ItemModel уже имеют определенное сопоставление между ними

Я не могу сделать это таким образом...

Mapper.CreateMap<SourceModel, DestinationModel>()
.ForMember(d => d.DestinationNestedViewModel.NestedList,
    opt => opt.MapFrom(src => src.SourceList))

ОШИБКА:

Выражение 'd => d.DestinationNestedViewModel.NestedList' должно разрешаться в элемент верхнего уровня. Имя параметра: lambdaExpression

Затем я попробовал что-то вроде этого:

.ForMember(d => d.DestinationNestedViewModel, 
 o => o.MapFrom(t => new DestinationNestedViewModel { NestedList = t.SourceList }))

Проблема в том, что NestedList = t.SourceList. Каждый из них содержит разные элементы, ItemModelи Itemсоответственно. Поэтому их необходимо нанести на карту.

Как это сопоставить?

7
задан getit 19 May 2012 в 00:05
поделиться