ai didi

c# - 我可以在 SitecoreQuery 属性中使用相对快速的查询吗?

转载 作者:太空狗 更新时间:2023-10-29 22:59:26 24 4
gpt4 key购买 nike

我正在安装 Sitecore 7 + Glass Mapper 3,我希望对其进行优化。

我的代码示例是:

[SitecoreQuery(".//*[@@templateid = '{011EC776-D9F3-4D73-8D8D-E454417E7574}']", 
IsRelative = true)]
IEnumerable<ItineraryLine> Itinerary { get; set; }

我希望使用 FastQuery 但我收到错误:

End of string expected at position 4

我给了following solution a try这涉及插入 getLookupSourceItems 管道 - 但我认为这不是正确的管道,因为它不会在调试中触发。

在这种情况下,Glass 是否使用了另一个管道(如果有的话)?有没有其他方法可以解决我的加速目标?

如果我不使用属性而是使用扩展方法,我可以手动执行此操作并使用 *[@@id=''] 设置根节点,但我希望避免这种情况,如果可能。

最佳答案

当使用 IsRelative 设置为 true 时,GMS 会通过 Axes SelectItem 推送查询。 Sitecore 不允许快速查询 Axes 选择,例如:

Item.Axes.SelectItems("fast:./*");

请参阅此处的文档第 3 页:

http://www.iosh.co.uk/~/media/using%20sitecore%20fast%20query001.ashx

但是 GMS 的强大功能让我们可以用另一种方式解决这个问题,您可以在 GMS 将扩展的查询中放置占位符。删除 IsRelative 属性并使用 {path}占位符允许相同的结果:

[SitecoreQuery("fast:{path}//*[@@templateid = '{011EC776-D9F3-4D73-8D8D-E454417E7574}']")]
IEnumerable<ItineraryLine> Itinerary { get; set; }

路径占位符将扩展为当前映射项目的完整路径。

关于c# - 我可以在 SitecoreQuery 属性中使用相对快速的查询吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21331200/

24 4 0
文章推荐: java - 执行 kafka-console-consumer.sh 时,zookeeper 不是可识别的选项
文章推荐: c++ - 如何引用子类中定义的枚举
文章推荐: java - 用 Java 创建自然 DSL 的最佳工具是什么?
文章推荐: c# - Html Antiforgerytoken cookie 和输入值不同
太空狗
个人简介

我是一名优秀的程序员,十分优秀!

滴滴打车优惠券免费领取
滴滴打车优惠券
全站热门文章
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com