EF Core 一对多无限包含

Nom*_*eed 3 entity-framework ef-fluent-api .net-core

我有两个具有一对多关系的表 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();
    }
Run Code Online (Sandbox Code Playgroud)

它会导致包括一项包含多项任务的约会,以及一项包含多项任务的约会,等等。

Der*_*ğlu 5

在您的ConfigureService中,您需要添加Json选项来处理引用循环处理

.AddJsonOptions(options =>
{
    options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Serialize;
    options.SerializerSettings.PreserveReferencesHandling = PreserveReferencesHandling.Objects;
});
Run Code Online (Sandbox Code Playgroud)

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

options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
Run Code Online (Sandbox Code Playgroud)