在 Umbraco 6 中,使用 ContentService 保存和发布节点列表的最佳方式是什么?

本文关键字:列表 节点 最佳 是什么 方式 布节点 Umbraco 使用 ContentService 保存 | 更新日期: 2023-09-27 18:22:28

我正在编写一个简单的函数,该函数从XML数据源(大约400个节点(更新/创建节点,我想知道保存和发布所有节点的最佳方法是什么。我注意到您可以Save节点列表,但没有SaveAndPublish等效项。

我应该只是遍历列表并为每个节点调用SaveAndPublish还是有更好的方法?如果有替代方案,在性能方面有什么不同吗?

任何答案将不胜感激!

在 Umbraco 6 中,使用 ContentService 保存和发布节点列表的最佳方式是什么?

你是对的,没有像Save方法那样接受IEnumerable的PublishSaveAndPublish选项。它可能很方便,因为它可以节省一些代码行。

目前实现所需目标的最有效选项是执行以下操作。

var cs = ApplicationContext.Current.Services.ContentService;
foreach(var content in yourListOfContentItems)
{
    cs.SaveAndPublish(content);
}

在发布之前通过调用Save方法保存列表并不会真正对您产生任何影响,就像 Umbraco 检测到列表中有新内容一样,它会单独处理每个内容。据我所知,这样做然后在之后调用Publish也不会为您节省任何周期,因为 Publish 方法调用与SaveAndPublish调用的相同SaveAndPublishDo方法。所以不妨直接去看最终结果。