Linq to Entities with Subselect in select part

时间:2011-10-13 12:23:42

标签: .net linq entities subquery

我们开始使用EF的MVC项目。 我们需要使用subselect在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';

从Microsoft和Stack Overflow中读取“101页”示例我找不到这样的示例。 我找到了使用join和group的示例,但在某些情况下,它们已经是查询中的一个组。

请帮我解决这个问题? 感谢。

1 个答案:

答案 0 :(得分:4)

您需要一个名为Post on Post的导航属性(如果指定了外键,EF会自动创建它),然后您可以使用查询。

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