我需要获取 Sitecore 中所有孤立项目的列表。我不知道该怎么做。我最初的想法是从根开始并获取所有后代,然后检查每个项目以查看它是否项目。父项为空,但如果项目是孤立项,我不确定它是否会显示在后代列表中?有谁知道如何在 Sitecore 中查找孤儿?
您无法使用 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 + ")";