Фильтрация запроса в Entity Framework на основе дочернего значения - PullRequest
1 голос
/ 23 сентября 2010

У меня есть модель, настроенная в Entity Framework (EF), где есть две таблицы, родительская и дочерняя, в отношении один ко многим. У меня возникают проблемы при написании запроса с помощью linq, в котором я пытаюсь получить один экземпляр родительского элемента при фильтрации по полю в родительском элементе и другому полю в дочернем элементе. Это будет выглядеть примерно так, как указано ниже:

var query = from c in context.ParentTable 
            where c.IsActive == true && c.ChildTable.Name = "abc" 
            select c;

К сожалению, когда я пытаюсь это сделать, происходит сбой, поскольку при вводе c.ChildTable поле с именем "Name" не отображается в Intellisense.

Любое руководство будет оценено.

1 Ответ

3 голосов
/ 23 сентября 2010

Это правильно, потому что c.ChildTable не относится к вашему типу Child , но EntityCollection . Чтобы ваш запрос работал, вам нужно изменить его следующим образом:

var query = from p in context.ParentTable 
            from c in p.ChildTable 
            where p.IsActive == true 
                  && c.Name == "abc" 
            select p;
...