将对象映射到具有子列表的对象

时间:2016-10-24 13:03:31

标签: c# asp.net asp.net-mvc mapping automapper

我有一个班级:

public class LearnerEvent
{
    public string SubjectField { get; set; }

    public string GradeField { get; set; }

    public DateTime AchievementAwardDateField { get; set; }

    public string QualificationTypeField { get; set; }
}

我想将此映射到DTO:

public class LearnerEventDto
{
    public List<LearnerEventInfoDto> LearnerEventInfo { get; set; }

    public string QualificationTypeField { get; set; }
}

有一个sub-dto:

public class LearnerEventInfoDto
{
    public string SubjectField { get; set; }

    public string GradeField { get; set; }

    public DateTime AchievementAwardDateField { get; set; }
}

目的是这样我可以在组中显示对象,即。按奖励类型分组。

我知道我可能要编写一个自定义映射器(使用automapper),但我不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

您想要的映射意味着该列表中的每个InfoDTO对象都必须具有相同的QualificationType,这意味着您已经将LearnerEvents过滤为特定类型。不需要将QualificationType写入“DTO列表”。

我猜你正在使用DTO,因为你不想分发LearnerEvent类,或者因为你想要过滤你未在示例中显示的某些信息,所以我要做的就是使用您要传输的LearnerEvent中的字段创建LearnerEventDTO,将它们放入List并将它们发送到任何您想要的位置。

另一方可以通过在任何元素上查找来确定QualificationType,并且这些项目应该具有相同的QualificationType。