DocumentHelper.GetDocuments (). Метод API InCategories () не работает должным образом - PullRequest
0 голосов
/ 14 сентября 2018

Я пытаюсь получить документы данного типа с назначенной категорией.Это мой код:

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

Ответы [ 2 ]

0 голосов
/ 14 сентября 2018

Эта категория относится к конкретному сайту? Если это так, это не сработает, потому что в своем запросе вы не указали сайт, с которого хотите получать документы.

Вы можете просто добавить

.OnCurrentSite()

для вашего DataQuery, это будет выглядеть так

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

Он будет получать документы с текущего веб-сайта на основе домена.

Метод IMO. В категории не следует заботиться о сайте или параметризировать.

0 голосов
/ 14 сентября 2018

Вы должны включить оператор using для его работы, потому что эти методы являются расширениями.

using CMS.DocumentEngine;
...