Sitecore查询,是否可以计算整数字段的总和

时间:2016-06-17 13:36:30

标签: c# sitecore

我想知道是否可以在sitecore快速查询或任何其他方式中进行数学运算(例如Sum)。

我有100个项目的字段'Money花钱'数据类型'整数'。我想知道为特定人/用户计算此字段总和的快速方法。

这是我正在做的事情,我正在使用快速查询获取项目然后计算总和。

var searchStr = "{30218229-CFA8-4BC3-9F01-01E3E6469E51}";
var query = string.Format("fast:/sitecore/content/Intranet/User/Detail/*[@Active ='1']//*[@Profile Id=\"%{0}%\"]", searchStr);
var items = Sitecore.Context.Database.SelectItems(query);
    //Calculate sum
var sum = items.Aggregate(0, (x, y) => x + GeneralHelper.ConvertToInt16(y["Money spend"]));

我想知道如何快速进行总和计算过程?

1 个答案:

答案 0 :(得分:1)

我认为最好的方法是使用索引(正如马克已经提到的那样):

  • 为您的用户创建自定义索引,并包含您的"资金支出"其中的价值(以及'有效的'和'个人资料ID'正在查询这些内容)。确保"花钱"是"存储"。
  • 创建一个源自SearchResultItem的自定义类,以包含" money花费"作为财产的领域
  • 使用contentsearch api查询用户,就像使用快速查询一样(索引会更快)并使用您刚创建的自定义类来收集结果
  • 使用Linq计算您需要的内容