用automapper从两个对象映射数据
本文关键字:两个 对象 映射 数据 automapper | 更新日期: 2023-09-27 18:19:24
嗨,我正在使用autommaper从对象进行数据传输,我有一个情况,我必须从两个对象映射到一个。
这是我从存储库获得的数据:
IEnumerable<GetStudentClassmates_Result> students = UnitOfWork.Dashboard.GetStudentClassMates(studentId);
IEnumerable<GetStudentTeachers_Result> teachers = UnitOfWork.Dashboard.GetStudentTeachers(studentId);
这是我需要映射到的对象:
public class ParticipantsDTO
{
public IEnumerable<GetStudentClassmates_Result> Students { get; set; }
public IEnumerable<GetStudentClassmates_Result> Teachers { get; set; }
}
是否有办法实现这与自动地图?
可能你可以包装你的IEnumerable<GetStudentClassmates_Result>
和IEnumerable<GetStudentTeachers_Result>
在Tuple
和定义你的地图基于Tuple
。映射代码如下所示:
Mapper.CreateMap<Tuple<IEnumerable<GetStudentClassmates_Result>, IEnumerable<GetStudentTeachers_Result>>, ParticipantsDTO>();
希望它对你有用。
你的例子看起来它们包含相同的类,所以看起来它们不需要映射。
我将期待一个GetStudentClassmates_ResultDto
对象。
请纠正我,我将更新我的答案。
本文向您展示了如何映射集合:
https://github.com/AutoMapper/AutoMapper/wiki/Lists-and-arrays首先你需要创建一个地图,例如:
Mapper.CreateMap<GetStudentClassmates_Result, GetStudentClassmates_ResultDto>();
然后映射它们,即:
IEnumerable<GetStudentClassmates_ResultDto> ienumerableDest = Mapper.Map<IEnumerable<GetStudentClassmates_Result>, IEnumerable<GetStudentClassmates_ResultDto>>(students);