EF Core一对多无限包含

EF Core one-to-many infinite includes

我有两个具有一对多关系的表 Appointment 和 TaskAllocation。现在当我得到预约时

public IEnumerable<Appointment> GetAppointments(int employeeId, DateTime date)
    {
        return _context.Appointment.Where(a => a.EmployeeId == employeeId && 
            a.AppointmentDate == date)
           .Include(a=>a.Tasks).ToList();
    }

这会导致包含一个约会有很多任务,然后又包含一个任务有那个约会有很多任务等等。

在您的 ConfigureService 中,您需要添加 Json 处理参考循环处理的选项

.AddJsonOptions(options =>
{
    options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Serialize;
    options.SerializerSettings.PreserveReferencesHandling = PreserveReferencesHandling.Objects;
});

或者您可以选择直接忽略引用循环

options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;