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

本文关键字:列表 对象 一个对象 映射 | 更新日期: 2023-09-27 18:14:42

我有一个类:

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

有子dto:

public class LearnerEventInfoDto
{
    public string SubjectField { get; set; }
    public string GradeField { get; set; }
    public DateTime AchievementAwardDateField { get; set; }
}

目的是让我可以显示组中的对象,如。按奖项类型分组。

我知道我可能要写一个自定义映射器(使用automapper),但我只是不确定如何去做。

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

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

我猜你正在使用DTO,因为你不想分发LearnerEvent类,或者因为你想过滤你没有在你的例子中显示的某些信息,所以我要做的是创建learnereventdto与你想要传输的LearnerEvent字段,把它们放在一个列表中,并将它们发送到你想要的任何地方。

另一方可以通过查找任何元素来确定qualiationtype,并且这些项目无论如何都应该具有相同的qualiationtype。