【发布时间】:2016-08-18 15:32:18
【问题描述】:
在查询分析器中,我可以执行以下查询,产生我想要的结果:
select * from /sitecore/content/Home//*[@@templatekey='action' and @Department='{38c76731-f18a-4d29-9d52-33fdb3329881}']
当我在 Department 模型中使用 Glass Mapper 尝试以下站点核心查询时,我没有得到任何结果。
[SitecoreQuery("/sitecore/content/Home//*[@@templatekey='action' and @Department='{38c76731-f18a-4d29-9d52-33fdb3329881}']", IsRelative = false)]
public virtual IEnumerable<ActionArticle> TestServices { get; set; }
出于测试目的,我从上面返回所有ActionArticles 的查询中删除了and @Department='{38c76731-f18a-4d29-9d52-33fdb3329881}'。
最终我希望能够在查询中引用当前的Department 模型。类似这样的东西:
[SitecoreQuery("/sitecore/content/Home//*[@@templatekey='action' and @Department='"+ this.Id +"']", IsRelative = false)]
public virtual IEnumerable<ActionArticle> TestServices { get; set; }
当然this在上述情况下是不可用的,所以我很茫然...
这可能吗?如果可以,我将如何实现这样的目标?
【问题讨论】:
-
这可能通过使用流畅的映射和委托来实现,但是对于 Sitecore 查询的任何使用,danger danger,更不用说递归 Sitecore 查询了。这将非常糟糕,尤其是在负载下。你可以用搜索索引来代替吗?
标签: asp.net-mvc sitecore sitecore8 sitecore-mvc glass-mapper