如何使用Automapper

时间:2018-01-31 19:23:54

标签: asp.net-core automapper

我有这个实体:

public class Skill : Base
{
    public Skill() { }

    public string Name { get; set; }
    public string Description { get; set; }

    public List<UserSkill> UserSkills { get; set; }
}

这个DTO:

public class SkillDto
{
    public SkillDto() { }

    public string Id { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
    public int AssignedUsers { get; set; } = 0;
}

这是我的Automapper配置:

configuration.CreateMap<Skill, SkillDto>()
.ForMember(dest => dest.Id, opts => opts.MapFrom(src => src.Id))
.ForMember(dest => dest.Name, opts => opts.MapFrom(src => src.Name))
.ForMember(dest => dest.Description, opts => opts.MapFrom(src => src.Description))
.ForMember(dest => dest.AssignedUsers, opts => opts.MapFrom(src => src.UserSkills.Count));

最后一行,尝试计算List&lt;&gt;到int属性

.ForMember(dest => dest.AssignedUsers, opts => opts.MapFrom(src => src.UserSkills.Count));

但是,总是抓住这个例外:

  

找到未映射的成员。查看下面的类型和成员。添加一个   自定义映射表达式,忽略,添加自定义解析程序或修改   源/目标类型对于没有匹配的构造函数,添加一个无参数   ctor,添加可选参数,或映射所有构造函数参数   ================================================== ===============技能 - &gt; SkillDto(目的地成员列表)   Uranus.Domain.Entities.Skill - &gt; Uranus.WebAPI.Models.Skill.SkillDto   (目的地成员名单)

     

未映射的属性:AssignedUsers

出了什么问题?

0 个答案:

没有答案