Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

AutoMapper one to many relation

I'm starting to use AutoMapper for my project.

For this I want to do the following 'one-to-many' mapping:

Source:

public class Team
{
    int Id { get; set; }
    string TeamName { get; set; }
    List<Person> Member { get; set; }
}

public class Person
{
    int Id { get; set; }
    string Name { get; set; }
}

Destination:

public class TeamDetailsViewModel
{
    int Id { get; set; }
    string TeamName { get; set; }
    List<int> MemberIds { get; set; }
}

How to proceed with AutoMapper? Is this possible?

Thanks a lot in advance.

like image 799
Robert Avatar asked Jul 29 '11 11:07

Robert


1 Answers

This map should work for you:

CreateMap<Team, TeamDetailsViewModel>()
    .ForMember(d=>d.MemberIds, o=>o.MapFrom(s=>s.Member.Select(m=>m.Id)));

FYI...If you are getting the Team from a db, make sure you are eager loading the Member list.

like image 194
codeprogression Avatar answered Nov 20 '22 01:11

codeprogression