我在项目中使用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; }
}
我错了什么? 谢谢你的帮助。
答案 0 :(得分:1)
您无法对计算进行排序,但您可以定义如下索引:
from idea in docs.Ideas
select new
{
SumOfSupportersTokens = idea.Supporters.Sum(x=>x.Tokens)
}
然后按SumOfSupportersTokens排序