我正在编写一个简单的函数,它从 XML 数据源(大约 400 个节点)更新/创建节点,我想知道保存和发布所有节点的最佳方法是什么。我注意到您可以Save
列出节点,但没有SaveAndPublish
等效项。
我应该只遍历列表并调用SaveAndPublish
每个节点还是有更好的方法?如果有替代方案,在性能方面有什么区别吗?
任何答案将不胜感激!
您是正确的,没有Publish
或SaveAndPublish
选项可以像该Save
方法一样采用 IEnumerable。它可能很方便,因为它可以节省一些代码行。
目前实现您想要的最有效的选择是执行以下操作。
var cs = ApplicationContext.Current.Services.ContentService;
foreach(var content in yourListOfContentItems)
{
cs.SaveAndPublish(content);
}
在发布之前通过调用Save
方法保存您的列表不会对您产生任何影响,就像 Umbraco 检测到您的列表中有新内容一样,它会单独处理每个内容。而且据我所知,这样做然后在之后调用Publish
也不会为您节省任何周期,因为 Publish 方法调用的SaveAndPublishDo
方法与调用的方法相同SaveAndPublish
。所以还不如直奔最终结果。