使用Automapper从DTO映射到具有父子关系的对象图

时间:2017-11-06 15:33:32

标签: c# automapper dto object-graph

我正在尝试确定Automapper是否是从基本DTO集合构建父/子对象图的可行选项,而且我无法追踪我希望的那种方法的示例。

例如,我有以下DTO课程。

public class CourseDTO {

    public int CourseID { get; set; }
    public string CourseName { get; set; }

}

public class EnrolmentDTO {

    public int EnrolmentID { get; set; }
    public int CourseID { get; set; }
    public int StudentID { get; set; }

}

public class StudentDTO {

    public int StudentID { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }

}

我有一个存储库,它返回DTO的集合。例如,范围内的课程集合,这些课程的入学集合,这些入学的学生集合。

然后我有这个对象图类:

public class Course {

    public int CourseID { get; set; }
    public string CourseName { get; set; }
    public List<Enrolment> Enrolments { get; set; }

    public class Enrolment {

        public int EnrolmentID { get; set; }
        public int CourseID { get; set; }
        public int StudentID { get; set; }
        public Student Student { get; set; }

    }

    public class Student {

        public int StudentID { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }

    }

}

我希望能够在Automapper配置中抛出DTO​​集合,并获取Course对象的集合,并填充属性和子对象属性。 Automapper是否适用于此,任何人都可以给我任何指针或工作示例吗?感谢。

更新澄清:

我想让Automapper做的事情基本上是这样的:

给定一组集合,例如CourseDTO列表,EnrolmentDTO列表和StudentDTO列表

首先将CourseDTO列表中的对象映射到Course列表,对象图“root”

然后将EnrolmentDTO列表中的对象映射到对象图中,匹配CourseID值,以确保与特定课程相关的注册成为映射的子对象。

然后将StudentDTO列表中的对象映射到注册对象图中,以确保映射与学生相关的学生。

0 个答案:

没有答案