EF Core一对多无限包含

时间:2018-12-14 13:05:51

标签: entity-framework .net-core ef-fluent-api

我有两个表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();
    }

这会导致包括一项任务很多的约会,以及另一项任务那个任务很多的任务,依此类推。

1 个答案:

答案 0 :(得分:1)

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

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

或者您可以选择直接忽略参考循环,方法是

options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;