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())
}
我有以下查询来获取一组文档及其页面浏览量
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())
}