0

嗨,我正在使用 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 实现这一点?

4

2 回答 2

2

可能您可以将您包装在 a 中IEnumerable<GetStudentClassmates_Result>并根据它定义您的 Map 。映射代码将如下所示。IEnumerable<GetStudentTeachers_Result>TupleTuple

Mapper.CreateMap<Tuple<IEnumerable<GetStudentClassmates_Result>, IEnumerable<GetStudentTeachers_Result>>, ParticipantsDTO>();

希望对你有效。

于 2013-06-20T12:00:17.750 回答
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);
于 2013-06-20T13:02:28.883 回答