Рекурсивно удалять дочерние элементы в Sitecore CMS.NET - PullRequest
1 голос
/ 13 марта 2009

В моей медиатеке Sitecore есть следующая структура

изображения / Отдел / суб-отдел / продукта /

И я хочу одновременно удалить все изображения в кодовом отделе. На данный момент у меня есть

Item[] items = database.SelectItems("/sitecore/media library/images/department1//*");            

Sitecore.Data.Engines.DataEngine engine = new Sitecore.Data.Engines.DataEngine(database);

using (new SecurityDisabler())
{
    foreach (Item item in items)
    {
        engine.DeleteItem(item))
    }
}

Проблема в том, что он удаляет только дочерние изображения отдела1 и ничего под этим?

1 Ответ

7 голосов
/ 13 марта 2009

DataEngine - это API очень низкого уровня, который не должен использоваться без причины.

Удалить все подпункты одновременно просто:

Item Department1 = database.GetItem ("/ sitecore / медиа-библиотека / изображения / отдел1"); department1.DeleteChildren ();

Это оставит элемент Department1, но все, что находится под ним, будет удалено.

...