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

Posted

技术标签:

【中文标题】如何使用 AutoMapper 将对象列表转换为整数列表?【英文标题】:How do I convert a list of objects to a list of integers using AutoMapper? 【发布时间】:2011-04-14 23:35:59 【问题描述】:

我有一个Student 对象:

public class Student

    public int Id  get; set; 
    public string FirstName  get; set; 
    public string LastName  get; set; 

还有一个Clas-s-room 对象:

public class Clas-s-room

    public List<Student> Students  get; set; 

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

public class Clas-s-roomDTO

    public List<int> StudentIds  get; set; 

如何配置 AutoMapper 来进行这种转换?

答案:

为了扩展我的问题和吉米的回答,这就是我最终要做的:

Mapper.CreateMap<Student, int>().ConvertUsing(x => x.Id);
Mapper.CreateMap<Clas-s-room, Clas-s-roomDTO>()
      .ForMember(x => x.StudentIds, y => y.MapFrom(z => z.Students));

AutoMapper 足够聪明,可以完成剩下的工作。

【问题讨论】:

【参考方案1】:

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

Mapper.CreateMap<Student, int>().ConvertUsing(src => src.Id);

【讨论】:

我不认为我可以配置某种约定,以便它始终将引用类型集合映射到整数集合? 更多细节在这里:automapper.codeplex.com/…

以上是关于如何使用 AutoMapper 将对象列表转换为整数列表?的主要内容,如果未能解决你的问题,请参考以下文章

如何将时间戳日期转换为整数值

如何解决 - 无法使用Automapper将Generic.List强制转换为Linq.IQueryable?

Automapper - 如何重用对象而不是创建新对象(此对象在列表中)

AutoMapper的使用

AutoMapper用法

如何将字符串转换为整型数?