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;
我有两个具有一对多关系的表 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;