2014-12-15 2 views
0

У меня есть отношение, которое имеет внуковEF Внуки Single Row

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 для школы и позволяю oData делать запрос для Room и Person через Entity Framework 6. Я получаю только 1 запись для Person, когда ее больше одного. Когда я запускаю сгенерированный SQL, я вижу всех людей, которые должны быть включены, но я не вижу их в выходе.

ответ

0

Я вижу, что происходит в этом случае. Я маскировал фактические имена таблиц и полей в моем примере, чтобы поддерживать проект под обертками. Это связано с тем, что ключом был не первичный ключ, а основной ключ от него оставлен. Я исправил это, и все записи начали показывать. Я думаю, что EF будет показывать только первые записи уникальных ключей таблицы?

Смежные вопросы