我有一个场景,其中Manager(Employee
表)有几个桌面(Desktop
表)和几个Reportees(Employee
表使用自引用)。我正在使用EF Core 1.x。
我有Desktop Id和Reportee Id作为输入,我想检索填充了一个Desktop对象的Manager obkect和一个与提供的ID有关的Reportee(Employee)对象作为预期输出。所以,我写了以下查询:
var desktop = _desktopRepository.Query()
.Where(s => s.Id == desktopId)
.Include(s => s.Employee)
.All()
.FirstOrDefault();
// EF is magically adding reportee object to the desktop.Employee.Reportee list.
// So, no need to add it separately. If done, there'll be two objects of same Reportee.
var reportee = _employeeRepository.Get(reporteeId).Result;
我在这里观察到的是在评论中写的。我正在寻找有关为什么EF会自动将此对象添加到列表中的指导。
重要的是要注意,在这里,我发出两个完全不同的查询。当我通过代码调试时,我发现它是单独触发它们并获取结果。 EF不仅将结果添加到上面的实体中,而且还将其作为独立结果返回。
注意:抱歉,我不知道这是对还是错。但我想知道EF如何/为什么会自动将此对象添加到集合中。
非常感谢任何帮助。非常感谢提前。