我有以下查询来获取一组带有页面浏览量的文档
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);
此查询效果很好,但它会返回一组treenodes,据我所知,它并没有返回PageViews
列。
有没有办法进行查询,结果集包含页面视图列(或者有没有办法从treenode元素中获取它)?
我已经尝试了以下结果,但它只返回null:
var nodes = query.ToList()
nodes.First().GetValue("PageViews");
但是这会返回null,即使我获得了查询sql并在sql management studio中运行它,它为PageViews返回28
答案 0 :(得分:3)
好的,事实证明.ToList()
会返回一个treenode集合。如果我将最后一行更改为
var dataset = query.Result;
它会返回一个数据集,其中包含我在_blogCardsColumns
中请求的所有列,然后我可以使用
foreach (DataRow row in dataSet.Tables[0].Rows)
{
int pageviews = int.Parse(dataRow["PageViews"].ToString())
}