Вам просто нужно также выразить объединение в SQL:
var query = from core in db.Cores
join question in db.Questions on core.CID equals question.QID
join subject in db.Subjects on question.QID equals subject.SID
select new {
core.CoreName,
question.QuestionText,
subject.SubjectName
};
Конечно, если вы отобразили свои связи с базой данных, вам, возможно, не нужно явно выполнять объединение, предпочитая вместо этого простые свойства - этовсе зависит от того, как вы используете LINQ.
Обратите внимание, что ваши объединения кажутся немного странными с точки зрения имен идентификаторов - это как если бы у вас действительно было три сущности, все использующие точно одинаковые идентификаторы.Я бы ожидал чего-то большего:
var query = from core in db.Cores
join question in db.Questions on core.ID equals question.CoreID
join subject in db.Subjects on core.ID equals subject.CoreID
select new {
core.CoreName,
question.QuestionText,
subject.SubjectName
};