Использование 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, чтобы убедиться, что учащийся, связанный с зачислением, сопоставлен.