Группировать по и упорядочивать по - PullRequest
0 голосов
/ 24 марта 2010

используя LINQ to NHibernate, кто-нибудь знает, как использовать group by и order by в одном выражении. Я должен выполнить группу в список, а затем заказать это, кажется, что-то здесь не хватает ???

Пример: -

Private function LoadStats(...) ...
  Dim StatRepos As DataAccess.StatsExtraction_vwRepository = New DataAccess.StatsExtraction_vwRepository

  return (From x In StatRepos.GetAnswers(Question, Questionnaire) _
              Group x By xData = x.Data Into Count() _
              Select New ChartData 
                   With {.TheData = xData, 
                         .TheValue = xData.Count}
         ).ToList.OrderBy(Function(x) x.TheData)

End Sub

1 Ответ

1 голос
/ 24 марта 2010

Я не эксперт по Visual Basic, но вы должны иметь возможность использовать псевдоним в предложении Select для создания временной переменной, чтобы вы могли ссылаться на нее в следующих предложениях, таких как Order By. Если в NHibernate нет каких-либо ограничений, должно работать следующее:

return From x In StatRepos.GetAnswers(Question, Questionnaire) _ 
       Group x By xData = x.Data Into Count() _ 
       Select res = New ChartData With _
         { .TheData = xData,  _
           .TheValue = xData.Count } _
       Order By res.TheData _
       Select res

Я полагаю, что в некоторых ситуациях это может быть более читабельным, чем перемещение предложения Order By перед предложением Select.

...