EF Linq to Entities Query с суммой и мин. - PullRequest
2 голосов
/ 14 января 2011

Я пытаюсь заставить работать запрос Linq to Entities, но не могу понять.

Это мой мой 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

Anпока что моя лучшая попытка:

            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();

Однако это создает беспорядок в sql и учитывает только первый порядок, а не второй, с которым мне нужно работать.Любые предложения о том, что я делаю не так?Спасибо за помощь.

1 Ответ

4 голосов
/ 14 января 2011

Когда вы связываете функции OrderBy, вы должны использовать ThenBy() или ThenDescendingBy() для последнего.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...