Используйте это:
var subForms = repo.GetSubForms.Select(sf = new {
SubForm = sf,
Classes = sf.Classes.Where(c => c.TermId == termId)
}).ToList()
.Select(t => t.SubForm)
.ToList();
ОБНОВЛЕНИЕ: на основе комментария @ Слаумы:
Если вы хотите загрузить SubForm
s, у них есть Class
с Term
на termId
, вы можете переходить от конца к началу;как это:
var subForms = repo.Terms.Where(t => t.Id == termId).Select(t => new {
Term = t,
Class = t.Class,
SubForm = t.Class.SubForm
}).ToList()
.Select(t => t.SubForm).ToList();
ИЛИ проще всего, вы можете использовать Include
на вашем Term
, см .:
var subForms = repo.Terms.Include("Class.SubForm").Where(t => t.Id == termId)
.Select(t => t.Class.SubForm).ToList();
ПРИМЕЧАНИЕ: Как я понимаю из вашего вопроса, у вас есть такие отношения:
SubForm has_many Class has_many Term
Но ваш код показывает отношения, подобные этой:
SubForm has_many Class
Term has_many Class
Если можете, поставьте под сомнение ваши сущности или объясните их отношения, пожалуйста.Спасибо.