在自动映射器中为 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 配置中注册您的配置文件。
当我有一个集合时,我遇到了 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 配置中注册您的配置文件。