Как мне преобразовать список объектов в список целых чисел, используя AutoMapper? - PullRequest
9 голосов
/ 21 сентября 2010

У меня есть Student объект:

public class Student
{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

И Classroom объект:

public class Classroom
{
    public List<Student> Students { get; set; }
}

Я хочу использовать AutoMapper для преобразования списка студентов в список идентификаторов студентов:

public class ClassroomDTO
{
    public List<int> StudentIds { get; set; }
}

Как настроить AutoMapper для этого преобразования?

Ответ:

Чтобы расширить мой вопрос и ответ Джимми, вот что я в итоге сделал:

Mapper.CreateMap<Student, int>().ConvertUsing(x => x.Id);
Mapper.CreateMap<Classroom, ClassroomDTO>()
      .ForMember(x => x.StudentIds, y => y.MapFrom(z => z.Students));

AutoMapper был достаточно умен, чтобы сделать все остальное.

1 Ответ

11 голосов
/ 21 сентября 2010

Вам понадобится конвертер пользовательских типов:

Mapper.CreateMap<Student, int>().ConvertUsing(src => src.Id);
...