2013-06-20 127 views
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實現這一目標?

回答

2

也許您可以將IEnumerable<GetStudentClassmates_Result>IEnumerable<GetStudentTeachers_Result>包裹在Tuple中,並根據Tuple定義您的地圖。映射代碼將如下所示。

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

希望它適合你。

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);