Включая связанные сущности через отношения многие ко многим

У меня есть отношения многие ко многим, настроенные с Entity Framework, например:

public class Student
{
    public int StudentId { get; set; }
    public string Name { get; set; }
    public DateTime Birthday { get; set; }

    public ICollection<StudentClass> StudentClasses { get; set; }
}

public class Class
{
    public int ClassId { get; set; }
    public string Name { get; set; }
    public string Location { get; set; }

    public ICollection<StudentClass> StudentClasses { get; set; }
}

public class StudentClass
{
    public int StudentId { get; set; }
    public Student Student { get; set; }

    public int ClassId { get; set; }
    public Class Class { get; set; }
}

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

var studentsWithClasses = await _dbContext.Students
    .Include(s => s.StudentClasses)
    .ToListAsync();

Это получает меня StudentId и ClassId в коллекции StudentClasses, но объект Class является нулевым. Но я хотел бы получить доступ к данным в объекте класса, чтобы я мог видеть все имя и местонахождение класса ученика.

Есть ли способ включить это, или мне нужно сделать отдельный вызов базы данных?

1 ответ

Вы можете сделать это с помощью строки Include (будьте осторожны, intellisense не скажет вам, существует ли свойство на самом деле или нет).

var studentsWithClasses = await _dbContext.Students
    .Include("StudentClasses.Class")
    .ToListAsync();
Другие вопросы по тегам