AutoMapper one to many relation

2019-03-29 12:53发布

问题:

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.

回答1:

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.