如何使用 Umbraco 7 在事务中执行内容更新?

How to execute content updates in transaction using Umbraco 7?

我想移动一个内容节点并更改一些属性。但它应该在交易中完成。这些操作是使用 PetaPoco 框架完成的,它支持交易。 寻找实现事务性内容更新的正确方法。

我只是编写了以下虚构的代码来演示我想要实现的目标。我需要这样的东西:

using (var transaction = DatabaseContext.Database.GetTransaction())
{
    var content = Services.ContentService.GetById(model.Id);
    Services.ContentService.Move(content, parentId);
    content.SetValue("prop", "value");
    Services.ContentService.SaveAndPublishWithStatus(content);
    transaction.Complete();
}

很遗憾,目前无法执行此操作,因为服务不支持 transactions/scopes。

不过,将来可能会这样做,因为我们目前正在 7.6 版的服务层中实现供内部使用的事务(范围)。我不确定什么时候可以在核心命名空间之外使用它,因为我们还有一些测试要做,但希望很快就可以了。