AutoMapper-自定义对象列表的int数组

时间:2018-11-19 16:42:37

标签: c# automapper

从这些示例开始:

public class A
{
    public int[] ArrayOfIds { get; set; }
}

public class B
{
    public List<C> MyList { get; set; }
}

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

我想创建一个从A到B的映射,其中B包含ID为A的C对象列表。

如何配置AutoMapper来实现这一目标?

1 个答案:

答案 0 :(得分:2)

您可以执行以下操作:
1.创建从intC的地图,以便您可以在int[]上进行投射
2.创建从AB

的地图
A a = new A();
a.ArrayOfIds = new int[] { 1, 2, 3 };
var config = new MapperConfiguration(cfg => {
    cfg.CreateMap<int, C>().ForMember(dest => dest.Id, opts => opts.MapFrom(src => src));
    cfg.CreateMap<A, B>().ForMember(dest => dest.MyList, opts => opts.MapFrom(src => src.ArrayOfIds));
});

IMapper mapper = config.CreateMapper();
var b = mapper.Map<B>(a);