Мне нужно получить список всех потерянных элементов в Sitecore. Я не уверен, как это сделать. Моя первоначальная идея состояла в том, чтобы начать с корня и получить всех потомков, а затем проверить каждый элемент, чтобы увидеть, является ли он item.Parent нулевым, но если элемент является сиротой, я не уверен, будет ли он отображаться в списке потомки? Кто-нибудь знает, как найти сирот в Sitecore?
Sitecore - получить все потерянные элементы С#
Ответы (1)
Вы не можете получить потерянные элементы с помощью Sitecore Api.
Вам нужно напрямую использовать sql-запрос к базе данных.
В Sitecore уже есть метод CleanupOrphans
, который вызывается из задачи Cleanup Database
. Он использует следующий запрос для удаления потерянных элементов из базы данных:
string text = " SELECT ID FROM Items i1 WHERE i1.ParentID <> null AND NOT EXISTS(SELECT ID FROM Items i2 WHERE i2.ID = i1.ParentID)";
string sql = " DELETE FROM Items WHERE ID IN (" + text + ")";
person
Marek Musielak
schedule
10.10.2017
Спасибо. Это в какой таблице?
- person Erica Stockwell-Alpert; 10.10.2017
Я не собираюсь использовать метод CleanupOrphans, мой клиент хочет получить отчет обо всех потерянных элементах, но не обязательно хочет их удалять.
- person Erica Stockwell-Alpert; 10.10.2017
Как видно из запроса, это
Items
таблица.
- person Marek Musielak; 10.10.2017