Return 与 kentico 一起加入专栏获取文档

Return joined column with kentico get documents

我有以下查询来获取一组文档及其页面浏览量

var activityQuery = ActivityInfoProvider.GetActivities()
                .Columns($"COUNT(*) AS [{ColumnNames.PageViews}]", ColumnNames.ActivityValue)
                .WhereEquals(ColumnNames.ActivityType, ActivityTypes.BlogPostView)
                .GroupBy(ColumnNames.ActivityValue)
                .ToString(true);

var query = DocumentHelper.GetDocuments(PageTypes.BlogPost)
                .Columns(_blogCardColumns)
                .Source(src => src.LeftJoin(new QuerySourceTable($"({activityQuery})", "A"), "V.DocumentGUID", "A.ActivityValue"))
                .OrderByDescending(ColumnNames.BlogPostDate)
                .Published(selectOnlyPublished)
                .NestingLevel(1)
                .Path(path);

此查询运行良好,但它 return 是一组树节点,据我所知,它 return 不是 PageViews 列。

有没有办法进行查询并且结果集包括页面浏览量列(或者有没有办法从树节点元素中获取它)?

我已经尝试了以下结果,但它只是 returns null:

var nodes = query.ToList()
nodes.First().GetValue("PageViews");

但是这个 return 是空的,即使我在 sql management studio 中得到查询 sql 和 运行,它 returns网页浏览量为 28

好的,结果是 .ToList() returns 树节点集合。如果我将最后一行更改为

var dataset = query.Result;

它 returns 一个包含我在 _blogCardsColumns 中请求的所有列的数据集,然后我可以使用

访问我的综合浏览量
foreach (DataRow row in dataSet.Tables[0].Rows)
{
    int pageviews = int.Parse(dataRow["PageViews"].ToString())
}