从这些例子开始:
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; }
}
Run Code Online (Sandbox Code Playgroud)
我想创建从 A 到 B 的映射,其中 B 包含 C 对象列表,以 A 的 id 标识。
如何配置 AutoMapper 来实现此目的?
您可以执行以下操作:
1. 创建映射 from intto C,以便您可以进行转换int[]
2. 创建映射 from AtoB
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);
Run Code Online (Sandbox Code Playgroud)