views:

17

answers:

1

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.

+1  A: 

You'll need a custom type converter:

Mapper.CreateMap<Student, int>().ConvertUsing(src => src.Id);
Jimmy Bogard
Thanks, that worked great!
Daniel T.
I don't suppose there's some sort of convention that I can configure so that it always maps collections of reference types to a collection of integers?
Daniel T.
boj