У меня есть эти модели:
public class Term
{
public int TermId { get; set; }
public virtual ICollection<SubForm> SubForms { get; set; }
}
public class Form
{
public int SubFormId { get; set; }
public virtual ICollection<SubForm> SubForms{ get; set; }
}
public class SubForm
{
public int SubFormId { get; set; }
public virtual int FormId {get; set; }
public virtual Form Form {get; set;}
public virtual ICollection<Term> Terms { get; set; }
}
Таким образом, здесь отношения Form
имеют много SubForm
, в то время как SubForm
и Term
являются многими для многих.
Теперь мне нужны все формы и их подформы, связанные с определенным термином.
Это код, который у меня сейчас есть:
public IList<Form> GetFormsInTerm(int termId)
{
var forms =
termsRepository.GetForms().Where(f => f.SubForms.Any(sf => sf.Terms.Any(t => t.TermId == termId))).ToList();
return forms;
}
Но по какой-то причине, если 1 из примерно 5 субформ является частью терма, этот код возвращает эту родительскую форму со ВСЕМИ 5 субформами. Есть ли способ просто получить родителя и эту подчиненную форму?