我正在尝试获取具有指定类别的给定类型的文档。这是我的代码:
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
此类别是否已分配到特定网站?如果是这样,它将无法工作,因为在您的查询中,您没有指定要从中获取文档的站点。
你可以简单地添加
.OnCurrentSite()
对于你的DataQuery,它看起来像这样
var inCategoryDocuments = DocumentHelper.GetDocuments("XYZ.MyType").OnCurrentSite().InCategories("CategoryCodeName");
它将根据域从当前网站检索文档。
IMO方法。在类别中不应该关注网站或者应该参数化。
您需要包含using语句才能工作,因为这些方法是扩展。
using CMS.DocumentEngine;