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

ssn*_*ake 2 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; }
}
Run Code Online (Sandbox Code Playgroud)

我想创建从 A 到 B 的映射,其中 B 包含 C 对象列表,以 A 的 id 标识。

如何配置 AutoMapper 来实现此目的?

Sam*_*sov 5

您可以执行以下操作:
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)