2011-07-14 20 views
0

私は2つのテーブル:Category (Id, Name, ...)Question (Id, CategoryId, Title, ...)との関係がCategory 1-* Questionです。私は、データベースから上位3つのカテゴリ(質問の数が最も多い)を取得する必要があります。私は、このSQLクエリ書い :LINQのSQLクエリ

SELECT TOP 3 c.Name, COUNT(q.CategoryId) 
FROM Category c 
JOIN Question q 
ON c.Id = q.CategoryId 
GROUP BY Name 
ORDER BY COUNT(q.CategoryId) DESC 

をし、もちろん、それは動作しますが、私はLINQでこのクエリを記述する必要があります。主な問題は、最初の行にCOUNTです。このクエリでどのように使うべきですか?

+1

ようになります試みを投稿してください。 – Jeff

答えて

3

あなたのデータはどこから来るか私はわからないが、クエリが

var q = 
    from c in categories 
    join q in questions on c.Id equals q.CategoryID 
    group c by c.Name into g 
    orderby g.Count() descending 
    select new 
    { 
     Name = g.Key, 
     Count = g.Count() 
    }; 

q = q.Take(3); 
+0

ありがとう、ありがとう。 – Greg