2010-08-11 49 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