1. SitecoreアイテムAPI

データベースでの作業

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

Sitecore.Data.Databaseクラスを使用してSitecoreデータベースにアクセスできます。デフォルトのSitecore設定には、次のデータベースが含まれます。

  • マスター - CMSユーザーをサポートするすべてのコンテンツのすべてのバージョンが含まれます。

  • Web - WebサイトをサポートするMasterからの公開バージョンが含まれています。

  • コア - Sitecore CMSユーザー インターフェイスを制御するデータが含まれています。

次のセクションで説明する手法を使用して、Sitecoreデータベースにアクセスできます。

次の点を覚えておくことが重要です。

  • Sitecoreデータベースにアクセスするには、always Sitecore APIを使用する必要があります。

  • Sitecoreデータベースへのアクセスには、not SQLコマンドを使用する必要があります。

  • デフォルトでは、すべてのコードはコンテキストユーザーのセキュリティコンテキストで実行されます。

  • 存在しないデータベース、アイテム、フィールド、およびその他のリソースにアクセスしようとすると、Nullが返されるか、例外が発生する場合があります。

    コンテキスト・ユーザーが操作を完了するために必要なアクセス権を持っていないことがわかっている場合は、特定のタスクに対してセキュリティ・ユーザー・スイッチャーまたはセキュリティー無効化ツールを使用できます。

  • 開発者は、アイテムやフィールドにアクセスするときにNullを確認する必要があります。

    簡潔にするために、このドキュメントのコード例では、常にNullがチェックされるわけではありません。

  • Sitecore APIはSitecoreデータベースにアクセスします。

    また、適切な .NET APIを使用して外部データ ストアにアクセスすることもできます。

  • 発行対象データベースからアイテムを作成、更新、または削除した場合、マスターからその発行対象に発行すると、それらの変更が上書きされます。

    パブリッシュ対象のデータベースへの書き込みは避けてください。パブリッシング ターゲット データベースへの書き込みのリスクを軽減するには、プレゼンテーション コンポーネントからSitecoreデータベースに書き込まないでください。

  • データテンプレートとフィールドにアクセスするには、名前、部分パス、フルパス、ID、およびさまざまなAPIメソッドの言語やバージョンなどの可能性のあるその他の条件を指定します。

    最適なパフォーマンスを得るには、可能な限りIDを使用しますが、定数やその他の機能を使用して、複数のクラスで文字列をハードコーディングしないようにします。

コンテンツ データベースへのアクセス

コンテンツエディタなどのCMSユーザーインターフェースコンポーネントは、コンテンツデータベースと対話します。既定のコンテンツ データベースはMasterデータベースです。Sitecoreデスクトップなどのユーザー インターフェイスを使用すると、ユーザーはコンテンツ データベースを別のデータベースに変更できます。

メモ

プレゼンテーションコンポーネントは、データベースを名前で参照するのではなく、ほぼ独占的にコンテキストデータベースにアクセスします。

Sitecore.Context.ContentDatabaseプロパティを使用して、コンテンツ データベースにアクセスできます。たとえば、コンテキストデータベースにアクセスするには、次のようにします。

Sitecore.Data.Database content = Sitecore.Context.ContentDatabase;

手記

CMSユーザーインターフェースコンポーネントは、コンテキストデータベースの設定データを使用して、コンテンツデータベース内のデータを管理します。

名前によるデータベースへのアクセス

Sitecore.Configuration.Factory.GetDatabase()メソッドを使用して、特定のデータベースにアクセスできます。たとえば、Masterデータベースにアクセスするには、次のようにします。

Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master");

データを発行またはインポートするアプリケーション ロジックは、通常、名前でMasterデータベースにアクセスします。

手記

最初のパラメータがweb.config内の/configuration/sitecore/databases/database要素のいずれのidとも一致しない場合、Sitecore.Configuration.Factory.GetDatabase() メソッドは例外をスローします。この比較では、大文字と小文字が区別されます。

コンテキストデータベースへのアクセス

コンテキスト・データベースは、Webクライアントによってアクセスされる論理サイトに関連付けられたプライマリ・データベースです。発行済みWebサイトで実行されているプレゼンテーション コンポーネントの場合、コンテキスト データベースは発行対象データベースの1つです (Webなど)。エクスペリエンス エディターでは、コンテキスト データベースはMasterデータベースです。デスクトップ、コンテンツエディタ、およびその他のCMSユーザーインターフェースでは、コンテキストデータベースはコアデータベースです。

プレゼンテーションコンポーネントは、データベースを名前で参照するのではなく、ほぼ独占的にコンテキストデータベースにアクセスします。

Sitecore.Context.Databaseプロパティを使用して、コンテキスト データベースにアクセスできます。たとえば、コンテキストデータベースにアクセスするには、次のようにします。

Sitecore.Data.Database context = Sitecore.Context.Database;
この記事を改善するための提案がある場合は、 お知らせください!