如何使用AutoMapper将对象列表转换为整数列表?

Dan*_* T. 11 flatten automapper

我有一个Student对象:

public class Student
{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

一个Classroom对象:

public class Classroom
{
    public List<Student> Students { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我想使用AutoMapper将学生列表转换为学生ID列表:

public class ClassroomDTO
{
    public List<int> StudentIds { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

如何配置AutoMapper以执行此转换?

回答:

为了扩展我的问题和Jimmy的答案,这就是我最终做的事情:

Mapper.CreateMap<Student, int>().ConvertUsing(x => x.Id);
Mapper.CreateMap<Classroom, ClassroomDTO>()
      .ForMember(x => x.StudentIds, y => y.MapFrom(z => z.Students));
Run Code Online (Sandbox Code Playgroud)

AutoMapper非常聪明,可以完成剩下的工作.

Jim*_*ard 12

您需要一个自定义类型转换器:

Mapper.CreateMap<Student, int>().ConvertUsing(src => src.Id);
Run Code Online (Sandbox Code Playgroud)