如何使用Automapper将List <int>映射到复杂类型的属性?

时间:2017-11-08 11:57:22

标签: c# mapping automapper

我有这个数据模型:

public class ObjectType
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    public string Name { get; set; }

    public virtual ICollection<ObjectType> AllowedSubTypes { get; set; }
}

我需要使用Automapper将以下DTO模型映射到上述数据模型中:

public class ObjectTypeDto
{
    public int Id { get; set; }

    public string Name { get; set; }

    public IList<int> AllowedTypes { get; set; }
}

我的问题是如何只为Id属性将List of integer映射到List AllowedSubTypes?

1 个答案:

答案 0 :(得分:1)

您必须创建List intlist ObjectType的特定映射,并在数据模型和DTO类之间创建地图。

x.CreateMap<ObjectTypeDto, ObjectType>()
    .ForMember(m => m.AllowedSubTypes, mv => mv.MapFrom(m => m.AllowedTypes));

x.CreateMap<int, ObjectType>()
    .ForMember(m => m.Id, mv => mv.MapFrom(m => m));