2011-01-13 14 views
2

Linq to Entities Queryの作業をしようとしていますが、わかりません。EF Linq to Entitiesクエリをgroupby sumとminで行う

これは正常に動作している私の、私のSQLクエリです:

SELECT SUM(ca.PointValue) as Points, ua.UserFBID, MIN(ua.[Date]) as FirstDate 
    FROM [LeaderOfNow].[dbo].[QuestionAnswer] ca 
    inner join [LeaderOfNow].[dbo].[LONUserAnswers] ua 
    on ca.Id = ua.AnswerId 
    group by ua.UserFBID 
    order by Points desc, FirstDate asc 

アンこれまでの私の最高の試みは、次のとおりです。SQLの混乱をレンダリングし、最初の順序を尊重しかし

  var leaders = db.LONUserAnswers 
       .GroupBy(a => a.UserFBID) 
       .Select(a => 
       new 
       { 
        FBID = a.Key, 
        CurrentPoints = a.Select(v => v.QuestionAnswer.PointValue).Sum(), 
        FirstAnswered = a.Min(v => v.Date) 
       }) 
.OrderByDescending(a => a.CurrentPoints) 
       .OrderBy(a => a.FirstAnswered) 
       .Take(10) 
       .ToList(); 

私が働く必要がある二番目のものではなく、二番目のものではありません。何が間違っているの?お手伝いありがとう。

+0

EFは常に大量のSQLを生成します。ご心配なく。注文のことについては、すでに回答済みです。 – tster

答えて

4

OrderBy-Functionをチェーン化するときは、後者にThenBy()またはThenDescendingBy()を使用する必要があります。

+0

ありがとうございました。それがそれでした。 –