EF 孙子单排
本文关键字:单排 EF | 更新日期: 2023-09-27 18:34:11
我有一个有孙子的关系
public class School {
[Key]
public int SchoolId {get; set;}
public string Name {get;set;}
public virtual ICollection<Room> {get;set;}
}
public class Room {
[Key]
public int RoomId {get;set;}
public string Number {get;set;}
public int SchoolId {get;set;}
[ForeignKey("SchoolId")]
public virtual School School {get;set;}
public virtual ICollection<Person> People {get;set;}
}
public class Person {
[Key]
public int Id {get; set;}
public string Name {get;set;}
public int RoomId {get;set;}
[ForeignKey("RoomId")]
public virtual Room Room {get;set;}
}
我正在尝试加载房间的所有记录,但即使学校有多个房间,我也只有一个房间。 我正在返回一个 IQueryable for School,并允许 oData 通过实体框架 6 对房间和人员进行查询。当有多个记录时,我只会为 Person 取回 1 条记录。 当我运行生成的 SQL 时,我看到了应该包含的所有人,但我在输出中看不到他们。
我看到在这种情况下发生了什么,我确实在我的示例中屏蔽了实际的表和字段名称,以使项目处于保密状态。 这与说非主键是键并将主键从类中删除有关。 我纠正了这一点,所有记录都开始显示。 我想EF只会显示表的唯一键的第一条记录?