Ошибка цикличности при использовании Entity framework core в приложении ASP .Net core
Встретился вот с такой ошибкой >> System.Text.Json.JsonException: A possible object cycle was detected. This can either be due to a cycle or if the object depth is larger than the maximum allowed depth of 32. Consider using ReferenceHandler.Preserve on JsonSerializerOptions to support cycles. Path: $.Employees.Projects.Employees.Projects.Employees.Projects.Employees.Projects.Employees.Projects.Employees.Projects.Employees.Projects.Employees.Id. При использовании подхода code-first, сделал две следующие модели
public class Project
{
public int Id { get; set; }
public string Name { get; set; } = string.Empty;
public int Priority { get; set; }
public string CompanyCustomerName { get; set; } = string.Empty;
public string CompanyExecutorName { get; set; } = string.Empty;
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
public int ProjectManagerId { get; set; }
public Employee? ProjectManager { get; set; }
public List<Employee> Employees { get; set; } = [];
}
public class Employee
{
public int Id { get; set; }
public string Name { get; set; } = string.Empty;
public string Email { get; set; } = string.Empty;
public List<Project> Projects { get; set; } = [];
public List<Project> ManagedProjects { get; set; } = [];
}
При конфигурации моделей для миграции в БД, указал связь многие ко многим(в задании указано, что проекты должны содержать информацию о сотрудниках, которые в них трудятся и сотрудники должны содержать в себе информацию на каких проектах они работают). Когда я пытаюсь получить информацию о проектах с включением списка сотрудников выдается ошибка, указанная выше.
public async Task<List<Project>> Get()
{
return await _dbContext.Projects.AsNoTracking().Include(p => p.Employees).OrderBy(p => p.Id).ToListAsync();
}
Если в этом коде не указывать .Include(p => p.Employees)
, то все будет работать, но в API в ответе будет просто информация о проекте, без сотрудников, которые в нем учувствуют. Заранее спасибо за помощь.