在Sitecore中插入项目时,您可以使用以下代码:
Item newItem = parentItem.Add("NameOfNewItem", template);
然后编辑该项目。
然后保存该项目。
如果在中间发生错误,在parentItem.Add
指令之后,新项目上的字段不会保存,但是子项目已创建并放置在内容树中,因此我们有一个不完整的项目在内容树中(真的错了)。
无论如何都要在这一行插入一个项目吗?
换句话说,有没有办法在整个过程结束时放置parentItem.Add
指令?
这确实有助于提高数据完整性。
答案 0 :(得分:2)
开箱即用,我认为不支持交易。有一篇关于Sitecore和Item Transactions here的文章很好,它实现了一个单元工作方式,可以近似地对项目进行原子操作。
Sitecore内核程序集内部为需要它的操作提供事务支持。 API似乎不公开此功能或允许访问数据库IDbConnection。
public virtual DataProviderTransaction CreateTransaction();
Declaring Type: Sitecore.Data.DataProviders.Sql.SqlDataApi
Assembly: Sitecore.Kernel, Version=6.0.0.0
答案 1 :(得分:1)
您基本上是在寻找一种方法来使用事务来创建项目。
Sitecore 6不支持此功能。几年前提到Sitecore 7将支持交易。