Использование Automapper для отображения из DTO в графы объектов с родительскими и дочерними отношениями

Я пытаюсь определить, является ли 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; }

    }

}

Я хочу иметь возможность создавать коллекции DTO в конфигурации Automapper и возвращать коллекцию объектов Course с заполненными свойствами и свойствами дочерних объектов. Подходит ли Automapper для этого, и может ли кто-нибудь дать мне какие-либо указания или рабочий пример? Благодарю.

Обновление для уточнения:

Я пытаюсь заставить Automapper сделать следующее:

Данный набор коллекций, например, список CourseDTO, список EnrolmentDTO и список StudentDTO

Сначала сопоставьте объекты в списке CourseDTO со списком Course, граф объектов "root"

Затем сопоставьте объекты в списке EnrolmentDTO с графом объектов, сопоставив его по значению CourseID, чтобы убедиться, что записи, связанные с конкретным курсом, становятся сопоставленными дочерними объектами.

Затем сопоставьте объекты в списке StudentDTO с графиком объектов Enrollment, чтобы убедиться, что учащийся, связанный с зачислением, сопоставлен.

0 ответов

Другие вопросы по тегам