如何使用 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?