从这些示例开始:
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来实现这一目标?
答案 0 :(得分:2)
您可以执行以下操作:
1.创建从int
到C
的地图,以便您可以在int[]
上进行投射
2.创建从A
到B
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);