c# - AutoMapper:一对多 -> 一对一
问题描述
我开始在我的项目中使用 AutoMapper。为此,我想做以下“一对多”映射:
public class Team
{
string TeamName { get; set; }
List<Person> Member { get; set; }
}
public class Person
{
string PersonName { get; set; }
}
目的地:
public class TeamDetailsViewModel
{
string TeamName { get; set; }
string PersonName { get; set; }
}
如何继续使用 AutoMapper?这可能吗?
提前非常感谢。
解决方案
使用ForMember
方法
var config = new MapperConfiguration(cfg =>
cfg.CreateMap<Team, TeamDetailsViewModel>().ForMember(des => des.TeamName,
op => op.MapFrom(team => team.Member.FirstOrDefault().PersonName)));
var mapper = config.CreateMapper();
var team = new Team();
TeamDetailsViewModel dto = mapper.Map<TeamDetailsViewModel>(team);
此方法允许您自定义映射