您好我使用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; }
}
有没有办法用autommaper实现这个目标?
答案 0 :(得分:2)
可能您可以将IEnumerable<GetStudentClassmates_Result>
和IEnumerable<GetStudentTeachers_Result>
包裹在Tuple
中,并根据Tuple
定义您的地图。映射代码将如下所示。
Mapper.CreateMap<Tuple<IEnumerable<GetStudentClassmates_Result>, IEnumerable<GetStudentTeachers_Result>>, ParticipantsDTO>();
希望它适合你。
答案 1 :(得分:1)
您的示例看起来像包含相同的类,因此看起来它们不需要映射。
我期待一个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);