アイテムを編集モードにする
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
アイテムを更新するSitecore APIは、アイテムが編集モードでない場合、例外をスローすることがあります。アイテムを編集モードにするには、Sitecore.Data.Items.Item.Editingプロパティのメソッドを使用するか、Sitecore.Data.Items.EditContextクラスを使用します。
CDサーバーはmasterデータベースにアクセスできないため、アイテムを編集する公開用のものを作成した場合 (これは絶対に行いません)、運用環境では機能しないことに注意してください。
たとえば、次のコードでは、Sitecore.Data.Items.Item.Editingクラスのメソッドを使用して、Masterデータベース内の /Sitecore/Content/Home項目をセキュリティ ディセーブル内の編集モードに配置します。
Sitecore.Data.Items.Item.Editing.CancelEdit() メソッドを呼び出すか、Sitecore.Data.Items.Item.Editing.EndEdit() メソッドを呼び出さない場合、Sitecoreは変更をコミットしません。
開発者は、この例に示すようにtry/catchブロックを使用する必要があります。簡潔にするために、このドキュメントのコード例には、必ずしもtry/catchブロックが含まれているわけではありません。
または、ステートメントを使用してC# でSitecore.Data.Items.EditContextクラスを使用し、項目を編集モードにすることもできます。usingステートメントを閉じると、Sitecore.Data.Items.EditContext.Dispose() メソッドが呼び出され、そのコード セグメント内で行われたすべての変更がコミットされます。
たとえば、次のコードでは、Masterデータベース内の /Sitecore/Content/Home項目を、 Sitecore.Data.Items.EditContextを使用して編集モードに配置します。
Sitecore.Data.Items.EditContextクラスを使用する場合、変更を明示的にロールバックすることはできません。usingステートメント内のコードが例外をスローした場合、usingステートメントを閉じると、例外の前に行われた変更が自動的にコミットされます。