我在收藏时遇到了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; }
}.
我已经尝试过类似下面的操作,但是Team字符串不为空。我相信我必须指定映射。但是我是自动映射的新手,我无法弄清楚。
IEnumerable<Models.Member> ienumerableDest = _mapper.Map<IEnumerable<Entities.Member>, List<Models.Member>>(members);
这里是Response
我的猜测是您尚未在任何地方指定如何映射课程。
在您的Entities.Member类中,您具有Team类型的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));
}
}
在此示例中,我在您的Team对象中假定了属性“ Name”。
并且在启动类中,您应该在AutoMapper配置中注册您的配置文件。