Включая связанные сущности через отношения многие ко многим
У меня есть отношения многие ко многим, настроенные с 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();