Как синтаксис выражения LINQ работает с Include () для активной загрузки

У меня есть запрос ниже, но я хочу выполнить Include (), чтобы активировать свойства загрузки. Действия имеют свойство навигации, Пользователь (Action.User)

1) Мой основной запрос:

from a in Actions
join u in Users on a.UserId equals u.UserId
select a

2) Первая попытка:

from a in Actions.Include("User")
join u in Users on a.UserId equals u.UserId
select a

Но Action.User не заполнен .

3 ) Попытайтесь загрузить «Пользователь» в свойство навигации в действии вне запроса:

(from a in Actions
join u in Users on a.UserId equals u.UserId    
select a).Include("User")

В LINQPad при попытке включить, я получаю сообщение об ошибке:

«System.Linq.IQueryable» не содержит определения для «Включить» и не удалось найти метод расширения 'Include', принимающий первый аргумент типа 'System.Linq.IQueryable' (нажмите F4, чтобы добавить директиву using или ссылку на сборку)

Я думаю, это потому, что LINQ не поддерживает Include () .

Итак, я попробовал в VS; запрос 2 выполняется, но возвращает незаполненное свойство User. Запрос 3: метод расширения, похоже, не существует, хотя он существует в самом действии без запроса.

32
задан jaffa 21 July 2011 в 13:02
поделиться