3

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

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

任何答案将不胜感激!

4

1 回答 1

6

您是正确的,没有PublishSaveAndPublish选项可以像该Save方法一样采用 IEnumerable。它可能很方便,因为它可以节省一些代码行。

目前实现您想要的最有效的选择是执行以下操作。

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

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

于 2013-07-16T03:17:08.970 回答