Linq to Entities с отбором в выбранной части - PullRequest
2 голосов
/ 13 октября 2011

Мы начинаем с проекта MVC с использованием EF. Нам нужно будет написать много запросов в LINQ, используя подвыбор, и мы еще не выяснили, как это можно сделать.

Самый простой случай из них в этой форме:

select p.Id, 
       p.Title,
       (select count(*) 
          from Comments c
         where c.PostId = p.Id
       ) as CommentCount
  from Post p
 where p.UserId = 'John';

Читая «101 страницу» примеров от Microsoft и Stack Overflow, я не смог найти такой пример. Я нашел примеры использования join и group, но в некоторых случаях они уже являются группой в запросе.

Можете ли вы помочь мне с этим вопросом, пожалуйста? Спасибо.

1 Ответ

4 голосов
/ 13 октября 2011

Вам понадобится свойство Navigation под названием Comments on Post (EF автоматически создаст его, если у вас указаны внешние ключи), тогда вы можете использовать запрос, как показано ниже.

from p in Context.Posts
where p.UserId == "John"
select new 
{
  Id = p.Id,
  Title = p.Title,
  Count = p.Comments.Count()
}
...