Доступ к родительским значениям с помощью внешних ключей

#c# #asp.net-mvc #entity-framework #code-first #dbcontext

#c# #asp.net-mvc #entity-framework #сначала код #dbcontext

Вопрос:

Модели:

 public class School
{
    public int ID {Get;set;}
    public string SchoolName {get;set;}
    public virtual ICollection<Room> Rooms {get;set;}
}

public class Room
{
    public int ID {get;set;}
    public string RoomName {get;set;}

    public int SchoolID {get;set;}
    [ForeignKey("SchoolID")]
    public virtual School School {get;set;}
    public virtual ICollection<Computer> Computers {get;set;}
}

public class Computer
{
    public int ID {get;set;}
    public string ComputerName {get;set;}

    public int RoomID {get;set;}
    [ForeignKey("RoomID")]
    public virtual Room Room {get;set;}
}
 

Итак, у меня есть объект Computer и я пытаюсь получить доступ к названию школы, например:

 Computer myComp = context.Computers.FirstOrDefault();
string SchoolName = myComp.School.SchoolName;
 

И я получаю взамен нулевой объект. Может кто-нибудь указать мне правильное направление относительно того, почему это не работает?

Ответ №1:

При запросе вашего объекта вам необходимо конкретно указать Entity Framework, что вы хотите включить связанный объект. Вот как вы можете это сделать, используя Include:

 Computer myComp = context.Computers.Include(c => c.School).FirstOrDefault();
 

Убедитесь, что вы включили пространство имен, в котором находится этот метод:

 using System.Data.Entity;