Question

I have a Student object:

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

And a Classroom object:

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

I want to use AutoMapper to convert the list of students to a list of student IDs:

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

How do I configure AutoMapper to do this conversion?

Answer:

To expand on my question and Jimmy's answer, this is what I ended up doing:

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

AutoMapper was smart enough to do the rest.

Was it helpful?

Solution

You'll need a custom type converter:

Mapper.CreateMap<Student, int>().ConvertUsing(src => src.Id);
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top