4

Sitecore にアイテムを挿入するときは、次のようなコードを使用します:

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

次に、アイテムを編集します。

次に、アイテムを保存します。

途中でエラーが発生した場合、parentItem.Add指示の後、新しいアイテムのフィールドは保存されませんが、子アイテムが作成されてコンテンツ ツリーに配置されるため、コンテンツ ツリーに不完全なアイテムができます (本当に間違っています)。 .

この行に項目を挿入する方法はありますか?

  1. アイテムを作成する
  2. アイテムを投入する
  3. 最後に、入力された項目をコンテンツ ツリーに追加します。

言い換えればparentItem.Add、プロセス全体の最後に命令を置く方法はありますか?

これは、データの整合性を向上させるのに非常に役立ちます。

4

2 に答える 2

2

箱から出して、トランザクションがサポートされているとは思いません。ここにSitecoreとItemトランザクションに関する優れた記事があります。これは、アイテムに対するアトミックアクションの概算を与えるアプローチのような作業単位を実装しています。

Sitecoreカーネルアセンブリは、それを必要とする操作にトランザクションサポートを内部的に提供します。APIは、この機能を公開したり、データベースIDbConnectionへのアクセスを許可したりしていないようです。

public virtual DataProviderTransaction CreateTransaction();

Declaring Type: Sitecore.Data.DataProviders.Sql.SqlDataApi 
Assembly: Sitecore.Kernel, Version=6.0.0.0 
于 2012-09-29T07:10:03.043 に答える
1

基本的に、アイテムの作成にトランザクションを使用する方法を求めています。

これは、Sitecore 6 ではサポートされていません。Sitecore 7 がトランザクションをサポートすると (数年前に) 言及されました。

于 2012-09-27T16:12:09.617 に答える