Как сопоставить ICollection <T>с классом, полученным из List <T> - PullRequest
0 голосов
/ 12 июня 2019

Я настраиваю отображение между моими моделями и моими моделями представления и пытаюсь отобразить ICollection в класс, производный от List

Я попытался установить соответствие между списком ListItemClassVM и ICollection, но получил ошибку «Типы аргументов не совпадают»

Сопоставление первого варианта работает с этим:

public class ParentVM
{
    public List<ListItemClass> ListItemClasses { get; set; }
}

Вариант два отображения не работает:

public class ParentVM
{
    public ListItemClassVM ListItemClasses { get; set; }
}

public ListItemClassVM : List<ListItemClass>
{

}

Настройка отображения:

public ModelClass_ParentVM_Profile()
    {
        CreateMap<ModelClass, ParentVM>()
            .ForMember(d => d.ListItemClasses, o => o.MapFrom(i => i.ModelCollection))
            ;

        CreateMap<ParentVM, ModelClass>()
            ;

    }

пытается настроить отображение, чтобы вариант 2 отображался.

1 Ответ

0 голосов
/ 12 июня 2019

Я думаю, что есть больше способов достичь решения, но вы не можете избежать ручной перестановки из ICollection в ListItemClassVM. Возможно, более простым способом является добавление в ListItemClassVM конструктора, который принимает ICollection и инициализирует себя элементами ICollection, тогда вы можете сделать что-то вроде:

 CreateMap<ModelClass, ParentVM>()
        .ForMember(d => d.ListItemClasses, o => o.MapFrom(i =>new ListItemClassVM (i.ModelCollection)))
        ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...