Как вы можете обращаться с циклическими ссылками при отображении?
Возьмите эту базу данных например
Работник
id - int (PK)имя - варчарЗарплата
id - int (PK)employee_id - int (FK)количество - плаватьEntity Framework будет генерировать модели, подобные этим:
public partial class Employee
{
public Employee()
{
this.Salaries = new HashSet<Salary>();
}
public int id { get; set; }
public string name { get; set; }
}
public partial class Salary
{
public int id { get; set; }
public int employee_id { get; set; }
public float amount { get; set; }
public Employee employee { get; set; }
}
Emplyee ссылается на список своих зарплат, в то время как каждая зарплата указывает, какому сотруднику он принадлежит. Это приводит к проблеме круговой ссылки.
Я следую шаблону хранилища и использую AutoMapper для перевода Employee в EmployeeDTO и Salary в SalaryDTO. Я хочу, чтобы эти DTO хранили информацию о своих детских отношениях. Однако я не хочу делать это рекурсивно. Я мог бы сделать что-то вроде.
public partial class EmployeeDTO
{
public EmployeeDTO()
{
this.Salaries = new HashSet<SalaryChildDTO>();
}
public int id { get; set; }
public string name { get; set; }
}
public partial class SalaryChildDTO
{
public int id { get; set; }
public float amount { get; set; }
}
Но это станет кошмаром обслуживания.
Как я могу сказать AutoMapper отображать только одного потомка или достичь аналогичной цели?