首页 > 解决方案 > 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?这可能吗?

提前非常感谢。

标签: c#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);

此方法允许您自定义映射


推荐阅读