2010-09-22 6 views
1

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

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

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

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

ответ

3

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

var query = from p in context.ParentTable 
      from c in p.ChildTable 
      where p.IsActive == true 
        && c.Name == "abc" 
      select p; 
Смежные вопросы