这是我的查询:
from forum in Forums join post in Posts on forum equals post.Forum into postGroup from p in postGroup where p.ParentPostID==0 select new { forum.Title,forum.ForumID,LastPostTitle = p.Title,LastPostAddedDate = p.AddedDate }).OrderBy(o=>o.ForumID)
目前,Join不是左连接,这意味着如果某个论坛没有属于它的帖子,则不会返回.
没有帖子的论坛必须返回post属性的null(或默认)值.
UPDATE
结果集应该是这样的:
ForumId | ForumTitle | LastPostTitle | LastPostAddedDate --------+------------+---------------+------------------ 4 | Sport | blabla | 12/4/2010 4 | Sport | blabla | 15/4/2010 6 | Games | blabla | 1/5/2010 7 | Flame | |
解决方法
var allforums = from f in context.Fora.Include("Posts") select f;
此查询产生的结果与
var allForums = from f in context.Fora select new ForumPosts { Forum = f,Posts = context.Posts.Where(x=> x.ForumId == f.ForumId)