在自动映射器中为 IEnumerable 到 IEnumerable /List 创建映射

Create Map for IEnumerable to IEnumerable /List in automapper

当我有一个集合时,我遇到了 Automapper 的问题。 以下是我的情况

商业模式

 public class Member
    {
        public int MemberId { get; set; }
        public int TeamID { get; set; }
        public Team Team { get; set; }
    }

我想 return 低于来自控制器的模型

public class Member
{
    public int MemberId { get; set; }
    public string Team { get; set; }
    public int TeamId { get; set; }
}.

我尝试了类似下面的内容,但团队字符串仍然为空。我相信我必须指定映射。但我是 automapper 的新手,我搞不懂。

 IEnumerable<Models.Member> ienumerableDest = _mapper.Map<IEnumerable<Entities.Member>, List<Models.Member>>(members);

这是Response

我猜你没有在任何地方指定如何映射你的 classes。

在您的 Entities.Member class 中,您有一个类型为 Team 的团队 属性,但您正试图将其映射到字符串,因此失败了。

在您的配置中,添加指定此映射的配置文件,如下所示:

 public class AppProfile : Profile
    {
        public AppProfile()
        {
            CreateMap<Entities.Member, Model.Member>(MemberList.Destination)
                .ForMember(d => d.Team, opt => opt.MapFrom(src => src.Team.Name));
        }
    }

在此示例中,我假设您的团队对象中有一个 属性 "Name"。

并且在您的启动过程中 class 您应该在 AutoMapper 配置中注册您的配置文件。