Ste*_*ill 5 c# sitecore sitecore7 glass-mapper
我正在安装Sitecore 7 + Glass Mapper 3,我希望对其进行优化.
我的代码的一个例子是:
[SitecoreQuery(".//*[@@templateid = '{011EC776-D9F3-4D73-8D8D-E454417E7574}']",
IsRelative = true)]
IEnumerable<ItineraryLine> Itinerary { get; set; }
Run Code Online (Sandbox Code Playgroud)
我希望使用FastQuery,但我得到错误:
期望在第4位的字符串结束
我尝试了以下解决方案,这涉及到getLookupSourceItems管道的插入- 但我不认为这是正确的管道,因为它不会在调试中触发.
Glass是否在此场景中使用了另一个管道(如果有的话)?有没有不同的方法可以解决我加快速度的目标?
如果我没有使用属性而是使用扩展方法,我可以手动执行此操作并使用*[@@id='']设置根节点,但我希望尽可能避免这种情况.
当使用IsRelative设置为true时,GMS会通过Axes SelectItem推送查询.Sitecore不允许快速查询Axes选择,例如:
Item.Axes.SelectItems("fast:./*");
Run Code Online (Sandbox Code Playgroud)
请参阅第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; }
Run Code Online (Sandbox Code Playgroud)
路径占位符将扩展到正在映射的当前项的完整路径.
| 归档时间: |
|
| 查看次数: |
1771 次 |
| 最近记录: |