Сначала получите родительский элемент только с относительными дочерними элементами во многих к многим кодам структуры Entity - PullRequest
0 голосов
/ 22 ноября 2011

У меня есть эти модели:

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 субформами. Есть ли способ просто получить родителя и эту подчиненную форму?

1 Ответ

1 голос
/ 22 ноября 2011

Как я понял ваш вопрос, вместо использования GetForms вы можете использовать Getsubforms, тогда это будет примерно так:

 var subforms =
            termsRepository.GetSubForms().Where(sf => sf.Terms.
Any(t => t.TermId == termId)).ToList();

это вернет все Subforms, которые относятся к termВы можете использовать загруженные SubForms, чтобы получить их родителей Forms.
Но я не знаю, что ваше требование выполнено с этим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...