sitecore插入项目数据完整性

时间:2012-09-27 16:03:58

标签: c# asp.net transactions sitecore sitecore6

在Sitecore中插入项目时,您可以使用以下代码:

Item newItem = parentItem.Add("NameOfNewItem", template);

然后编辑该项目。

然后保存该项目。

如果在中间发生错误,在parentItem.Add指令之后,新项目上的字段不会保存,但是子项目已创建并放置在内容树中,因此我们有一个不完整的项目在内容树中(真的错了)。

无论如何都要在这一行插入一个项目吗?

  1. 创建项目
  2. 填充项目
  3. 最后,将填充的项目添加到内容树中。
  4. 换句话说,有没有办法在整个过程结束时放置parentItem.Add指令?

    这确实有助于提高数据完整性。

2 个答案:

答案 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将支持交易。