Kentico DocumentHelper.GetDocuments().InCategories()API方法未按预期工作

Kentico DocumentHelper.GetDocuments().InCategories()API方法未按预期工作,kentico,Kentico,我正在尝试获取具有指定类别的给定类型的文档。这是我的代码: var inCategoryDocuments = DocumentHelper.GetDocuments("XYZ.MyType").InCategories("CategoryCodeName"); 此查询的结果如下: SELECT * FROM View_CMS_Tree_Joined AS V WITH (NOLOCK, NOEXPAND) INNER JOIN xyz_MyType AS C WITH (NOLOCK) ON

我正在尝试获取具有指定类别的给定类型的文档。这是我的代码:

var inCategoryDocuments = DocumentHelper.GetDocuments("XYZ.MyType").InCategories("CategoryCodeName");
此查询的结果如下:

SELECT * FROM View_CMS_Tree_Joined AS V WITH (NOLOCK, NOEXPAND) INNER JOIN xyz_MyType AS C WITH (NOLOCK) ON [V].[DocumentForeignKeyValue] = [C].[MyTypeID] AND V.ClassName = N'xyz.MyType' LEFT OUTER JOIN COM_SKU AS S WITH (NOLOCK) ON [V].[NodeSKUID] = [S].[SKUID] WHERE ([DocumentCulture] = N'en-EN' AND 0 = 1)
看起来这个API方法(.InCategories())什么都不做,或者我遗漏了什么


Kentico v11.0.26

您需要包含using语句才能使其工作,因为这些方法是扩展

using CMS.DocumentEngine;

是否将此类别分配给特定站点?如果是这样的话,它将不起作用,因为在查询中,您没有指定要从中获取文档的站点

您只需添加

.OnCurrentSite()
对于您的数据查询,它将如下所示

var inCategoryDocuments = DocumentHelper.GetDocuments("XYZ.MyType").OnCurrentSite().InCategories("CategoryCodeName");
它将根据域从当前网站检索文档


IMO方法。类别中不应考虑现场,或应将其参数化。

我已使用CMS.DocumentEngine
语句在类的顶部,代码编译成功。@Dawid这是由于类别设置的性质。类别可以是全局的,也可以是特定于站点的。因为Kentico支持多个租户,所以您需要查找特定于站点的类别,除非您仅使用全局类别。所以这不会改变。