我们开始使用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的示例,但在某些情况下,它们已经是查询中的一个组。
请帮我解决这个问题? 感谢。
答案 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()
}