C# 在automapper中创建IEnumerable到IEnumerable/列表的映射

C# 在automapper中创建IEnumerable到IEnumerable/列表的映射,c#,api,asp.net-core,asp.net-web-api,automapper,C#,Api,Asp.net Core,Asp.net Web Api,Automapper,当我收集时,我对Automapper有意见。 下面是我的情况 业务模式 public class Member { public int MemberId { get; set; } public int TeamID { get; set; } public Team Team { get; set; } } 我想从控制器返回以下模型 public class Member { public int MemberId

当我收集时,我对Automapper有意见。 下面是我的情况

业务模式

 public class Member
    {
        public int MemberId { get; set; }
        public int TeamID { get; set; }
        public Team Team { get; set; }
    }
我想从控制器返回以下模型

public class Member
{
    public int MemberId { get; set; }
    public string Team { get; set; }
    public int TeamId { get; set; }
}.
我已经尝试了下面这样的内容,但团队字符串仍然为空。我相信我必须指定映射。但我是汽车制造商的新手,我想不出来

 IEnumerable<Models.Member> ienumerableDest = _mapper.Map<IEnumerable<Entities.Member>, List<Models.Member>>(members);
IEnumerable ienumerableDest=\u mapper.Map(成员);

以下是

我猜您还没有指定如何映射类

在Entities.Member类中,您有一个类型为Team的Team属性,但您试图将其映射到string,因此失败

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

 public class AppProfile : Profile
    {
        public AppProfile()
        {
            CreateMap<Entities.Member, Model.Member>(MemberList.Destination)
                .ForMember(d => d.Team, opt => opt.MapFrom(src => src.Team.Name));
        }
    }
公共类AppProfile:Profile
{
公共应用程序配置文件()
{
CreateMap(MemberList.Destination)
.ForMember(d=>d.Team,opt=>opt.MapFrom(src=>src.Team.Name));
}
}
在本例中,我假设团队对象中有一个属性“Name”


在startup类中,您应该在AutoMapper配置中注册您的配置文件。

@LucianBargaoanu我已经检查并执行了类似IEnumerable ienumerableDest=\u mapper.Map(members);但是我如何才能像我在问题中提到的那样为一个单一的应用程序指定FormMember功能。您已经正确地完成了。可能
Team
为空。试着重做一次。@tiger告诉我们你是如何获得会员的。你的建议看起来不错,但只针对一个实体。我必须为集合指定映射,比如CreateMapper,这就是AutoMaper。它为您处理列表映射。您只需定义单个对象映射。然后,它按自己的元素映射每个元素。阅读这里的文档:。谢谢。事实上,我在回去收集时错过了它。我想我必须单独指定它。