在Sitecore中使用BucketManager

在Sitecore中使用BucketManager,sitecore,sitecore6,Sitecore,Sitecore6,我有一个简单的web应用核心库,用于测试Item Bucket API。我有一个属性和方法类,例如,我想使用属性和存储模板ID的常量类通过Sitecore中的电影项目bucket进行查询 我遇到的问题是,当使用BucketManager类调用静态方法Search()时,它无法识别第二个参数templates:“String” 以前有人有过这个问题吗?Sitecore中还有一个BucketList问题,其中只有模板的标准值显示BucketList TemplateFilter源(如果您对此bug

我有一个简单的web应用核心库,用于测试Item Bucket API。我有一个属性和方法类,例如,我想使用属性和存储模板ID的常量类通过Sitecore中的电影项目bucket进行查询

我遇到的问题是,当使用BucketManager类调用静态方法Search()时,它无法识别第二个参数templates:“String”

以前有人有过这个问题吗?Sitecore中还有一个BucketList问题,其中只有模板的标准值显示BucketList TemplateFilter源(如果您对此bug感兴趣,请请求屏幕截图)。

尝试添加此类字符串

using Sitecore.ItemBucket.Kernel.ItemExtensions.Axes;

Sitecore项目Bucket Developer指南旨在排除名为out hitCount的非可选参数,该参数是一个允许结果分页的属性。没有这个参数,我有一个无效的方法签名,这导致了错误

以下是正确的代码:

public List<Item> GetAllMovies() {
            var hc = 0;
            return BucketManager.Search(
                MovieFolder, 
                out hc, 
                templates: Constants.Constants.TemplateIDs.MoviesItemTemplateID
            ).Select(i=> i.GetItem()).Where(i=>i != null).ToList();
        }
公共列表GetAllMovies(){ var hc=0; 返回BucketManager.Search( 电影文件夹, 在hc之外, 模板:Constants.Constants.TemplateId.MoviesItemTemplateID ).Select(i=>i.GetItem())。其中(i=>i!=null); }
另外,不要忘记将IENumberable强制转换为项目列表。

此类用于替换GetChildren()、Children和Axes方法。我将BucketManager类用于搜索方法,巧合的是,它们都使用templates属性。请检查下面我的答案以了解解决方案。