Я думаю, я решил, на случай, если это будет полезно для кого-то еще ...
var iQueryable =
from blog in db.Blogs
join blogComment in db.BlogComments on
blog.BlogID equals blogComment.BlogID
where blog.Deleted == false
&& blog.Draft == false
&& blog.Default == false
&& blogComment.Deleted == false
group blogComment by blog.BlogTitle into blogGroup
let maxTimeStamp = blogGroup.Max(blogComment => blogComment.Timestamp)
let commentCount = blogGroup.Count()
orderby maxTimeStamp descending
select new RecentlyCommentedBlog() { BlogTitle = blogGroup.Key, CommentCount = commentCount };
Я пытаюсь вернуть результат этого запроса в виде объекта IQueryable. Я не мог найти никакого способа сделать это, не создав новый класс, только для этого запроса, названный RecentCommentedBlog. Вот код для этого класса:
public class RecentlyCommentedBlog
{
public string BlogTitle { get; set; }
public int CommentCount { get; set; }
public RecentlyCommentedBlog() { }
public RecentlyCommentedBlog(string blogTitle, int commentCount)
{
BlogTitle = blogTitle;
CommentCount = commentCount;
}
}
В любом случае, хотя это решение, похоже, работает, я не могу не думать о том, что наверняка найдется лучший способ добиться этого.