Как вы можете обращаться с циклическими ссылками при отображении?

Возьмите эту базу данных например

Работник

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 отображать только одного потомка или достичь аналогичной цели?

Ответы на вопрос(2)

Ваш ответ на вопрос