je la structure suivante dans ma médiathèque SitecoreSupprimer les éléments enfants récursive dans Sitecore CMS.NET
images/département/sous-service/produit/
Et je veux supprimer tous des images dans le code un département à la fois. En ce moment, je
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))
}
}
Le problème est-il supprime uniquement les images d'enfants de department1 et rien en dessous qui? DataEngine est une API de très bas niveau, qui ne doit pas être utilisée sans raison.
Merci pour votre réponse, pour quelle raison utiliseriez-vous DataEngine? –
La réponse rapide n'est jamais, sauf si vous savez ce que vous faites. Une réponse plus longue est que parfois les gens ont besoin d'une personnalisation hardcore ou d'une solution de contournement, qui ne peut pas être obtenue en utilisant des API publiques de plus haut niveau. Mais même alors, il est probable que cela soit fait par le support de Sitecore, ce n'est pas quelque chose que nous documentons. –
Puis-je également suggérer d'utiliser l'extension Sitecore Rocks pour Visual Studio. Vous pouvez afficher votre arborescence de contenu depuis VS et effectuer un "command" en cliquant avec le bouton droit n'importe où dans l'arborescence de contenu et en sélectionnant un analyseur de requête. Un utilisé pour ce cas serait: supprimer de/sitecore/media library/images/department1/* Vous êtes également autorisé à utiliser les attributs d'article, tels que [@@ templateid = ""], etc. Bonne chance . –