2010-08-11 47 views
2

我有以下两个表:最大指望GROUP BY - 实体框架

1.) Articles - [ArticleID] 
2.) ArticleComments - [CommentID], [ArticleID] 

我想检索与最大无条款ArticleID。例如评论

ArticleID - 2 
TotalNoOfComments - 15 

我该如何在实体框架中做到这一点?

我访问ArticleComments集合如下:article.ArticleComments。以下将是存储结果的对象。

public class CommentStats 
{ 
    public int ContextId { get; set; } 
    public int CommentCount { get; set; } 
} 

回答

2
var query = context.Articles. 
      Select(a => new CommentStats 
            { 
             ContextId = a.Id, 
             CommentCount = a.ArticleComments.Count 
            } 
       ).OrderByDescending(cs => cs.commentCount); 

然后,您可以运行整个有序列表FirstOrDefault的一篇文章评论最多的,还是ToList

+0

这似乎工作:)谢谢! – user383698 2010-08-11 15:08:12

+0

即使下面的工作同样出色...... 公共udMostCommented GetMostCommented(){ VAR 评论=(this.Fetch()的GroupBy(X => x.ContextId).OrderByDescending(X => x.Max(Y = > x.Count()))。FirstOrDefault()); udMostCommented mostCommented =新udMostCommented { 关联标识符= comments.FirstOrDefault()关联标识符, NumberOfComments = comments.Count() 。}; return mostCommented; } 谢谢,反正。 – user383698 2010-08-19 10:09:20