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

DocumentHelper.GetDocuments().InCategories() API Method not working as intended

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

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()

对于您的 DataQuery,它看起来像这样

var inCategoryDocuments = DocumentHelper.GetDocuments("XYZ.MyType").OnCurrentSite().InCategories("CategoryCodeName");

它将根据域从当前网站检索文档。

IMO 方法。InCategory 不应该关心站点或者它应该被参数化。