OrderBy используя RavenDB-исключение - PullRequest
2 голосов
/ 19 декабря 2011

Я использую Raven Db в своем проекте.Я пытаюсь заказать список, как показано ниже:

list.OrderByDescending(x => x.Supporters.Sum(y=>y.Tokens));

И я получил исключение, подобное этому:

{"Unable to cast object of type 'System.Linq.Expressions.MethodCallExpressionN' to type 'System.Linq.Expressions.MemberExpression'."}

Модель выглядит следующим образом:

public class Idea 
{

    (...)
    public IList<IdeaSupporter> Supporters { get; set; }

}

public class IdeaSupporter
{
   (...)
    public int Tokens { get; set; }
}

Что делатья неправ?Спасибо за любую помощь.

1 Ответ

1 голос
/ 21 декабря 2011

Вы не можете сортировать вычисления, но вы можете определить индекс следующим образом:

from idea in docs.Ideas
select new 
{
  SumOfSupportersTokens = idea.Supporters.Sum(x=>x.Tokens)
}

А затем выполнить сортировку по SumOfSupportersTokens

...