荷重構成
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
SDKとStylelabs.M.Base.Queryingは、荷重構成および荷重オプションを用いて以下を指定しています:
- エンティティを読み込む必要があるかどうか
- どの文化をエンティティに読み込む必要があるか
- エンティティにどのメンバーをロードするか
ロード構成は以下の位置にあります: Stylelabs.M.Framework.Essentials.LoadConfigurations。ロードオプションは以下のStylelabs.M.Framework.Essentials.LoadOptionsにあります。
!ヒントロードオプションや設定を使って、サーバーの負荷を最小限に抑えるようにしましょう。
このセクションでは、さまざまな荷重オプションと、荷重設定と荷重オプションの使い方について説明します。
ロードオプション
ロードオプションは「原子単位」であり、特定のアイテムをどのようにロードするかを指定します。現在サポートされているロードオプションは以下の通りです:
- 培養負荷オプション
- プロパティロードオプション
- 関係負荷オプション
すべてのロードオプションには、一般的なユースケース向けにデフォルト、静的、読み取り専用インスタンスがあります。また、読み込みオプションにはコピーコンストラクタがあります。これにより読み取り専用ロードオプションをコピーし、変更することができます。
上記のすべてのロードオプションクラスは、以下のようなものとなるLoadOption (列挙)性質を持っています。
- 全くありません
- デフォルト
- 習慣
- 全員
Customに設定されている場合、オブジェクトはPropertyLoadOptionのプロパティ名のリストを提供してロードするものを指定する必要があります。LoadOptionがCustomに設定されていない場合、リストは無視されます。
培養負荷オプション
以下はデフォルトのカルチャーロードオプションです:
- CultureLoadOption.All: Sitecore Content Hubに登録されたすべての文化を読み込みます。
- CultureLoadOption.Default: はSitecore Content Hubのデフォルトカルチャーを読み込みます。
- CultureLoadOption.None。
!注文化なしでエンティティを読み込むと、エンティティに文化依存のプロパティは存在しません。
エンティティが特定の文化セットに読み込まれた場合、文化感応性のプロパティはその文化でのみ利用可能になります。
特定の培養セットを読み込むには、以下のいずれかの方法を使って新しいCultureLoadOptionを作成します。
-
ローカレ識別子(LCID)を渡すことで、コンマは区切られます:
new CultureLoadOption("en-US", "nl-BE");
-
IEnumerableから派生する任意のタイプのローカレ識別子(LCID)コレクションを渡すことで:
string cultures = new {"en-US", "nl-BE"}; new CultureLoadOption(cultures);
-
インスタンスCultureInfo回す(コンマ区切り):
new CultureLoadOption(CultureInfo.GetCultureInfo("en-US"), CultureInfo.GetCultureInfo("nl-BE"));
-
IEnumerableから導出される任意の種類のCultureInfoインスタンスの集合を通すことで:
CultureInfo cultures = new {CultureInfo.GetCultureInfo("en-US"), CultureInfo.GetCultureInfo("nl-BE")}; new CultureLoadOption(cultures);
プロパティロードオプション
以下はデフォルトのプロパティロードオプションです:
- PropertyLoadOption.All: はエンティティ上のすべてのプロパティを読み込みます。
- PropertyLoadOption.None: エンティティにプロパティを読み込みません。
特定のプロパティセットを読み込むには、以下のいずれかの方法で新しいPropertyLoadOptionを作成します。
-
プロパティ名を(コンマ区切って)パスすると:
new PropertyLoadOption("propertyName1", "propertyName2");
-
プロパティ名の任意のタイプの集合( IEnumerableから導出される)を通すことで:
string names = new {"propertyName1", "propertyName2"}; new PropertyLoadOption(names);
関係負荷オプション
以下はデフォルトの関係式ロードオプションです:
- RelationLoadOption.All: はエンティティ上のすべての関係を読み込みます。
- RelationLoadOption.None: はエンティティに関係をロードしません。
特定の関係セットを読み込むには、以下のいずれかの方法を使って新しいRelationLoadOptionを作成します。
-
関係名(カンマ区切り)を渡すことで:
new RelationLoadOption("relationName1", "relationName2");
-
関係名の任意のタイプの集合( IEnumerableから導出される)を渡すことで:
string names = new {"relationName1", "relationName2"}; new RelationLoadOption(names);
どの役割を読み込むかを指定する(例
)には、以下のいずれかの方法でRelationSpecificationオブジェクトを作成します。-
関係仕様を通すことで、コンマは次のように区切られます。
RelationSpecification spec1 = new RelationSpecification { Name = "childSelfReferencingRelation", Role = RelationRole.Child };
RelationSpecification spec2 = new RelationSpecification { Name = "paentSelfReferencingRelation", Role = RelationRole.Parent };
new RelationLoadOption(spec1, spec2);
-
関係仕様の任意の種類の集合( IEnumerableから導出される)を通すことで:
RelationSpecification specs = new {spec1, spec2}; new RelationLoadOption(specs);
荷重構成
ロード構成は複数のロードオプションを集約する「分子単位」です。ロード構成はデフォルトの設定値を持ち、コピーコンストラクタをサポートしています。
!注IQueryLoadConfiguration SDK内では内部でのみ使用すべきです。
エンティティロード構成
構成は以下の通りです:
- CultureLoadOption
- PropertyLoadOption
- RelationLoadOption
以下はデフォルトのエンティティロード設定です:
- EntityLoadConfiguration.Minimal: は文化、プロパティ、関係を持たないエンティティを読み込みます。利用可能なのはシステムプロパティのみ(id、定義、created on、created by など)。
- EntityLoadConfiguration.Default: はデフォルトの文化にエンティティを読み込み、すべてのプロパティを読み込み、関係は一切含めません。
- EntityLoadConfiguration.DefaultCultureFull: はデフォルトの文化内のエンティティにすべてのプロパティと関係を読み込みます。
- EntityLoadConfiguration.Full: はすべての文化、すべての属性、すべての関係のエンティティを負荷します。
カスタム構成は以下の方法で作成されます:
new EntityLoadConfiguration( CultureLoadOption.None, new PropertyLoadOption("Title", "FileName"), new RelationLoadOption("AssetTypeToAsset") );
この例では、文化を持たないエンティティにTitleおよびFileNameプロパティ、そしてAssetTypeToAsset関係をロードします。
!注また、構造体の代わりにプロパティを使ってロードオプションを設定することも可能です。
!注EntityLoadConfigurationが指定されていない場合、SDKは常にDefault構成をデフォルトで設定します。
エンティティロード構成ビルダー
IEntityLoadConfigurationには、荷重構成を簡単に作成・拡張できるビルダーが付属しています。
以下の例は最小荷重構成から始まりますが、2つの関係式を加えています。
var loadConfig = EntityLoadConfiguration.Minimal.Builder().WithRelations(new { "Relation1", "Relation2" }).Build();
この路線は複数の部分で構成されています。
- EntityLoadConfiguration.Minimal: これはデフォルトで提供されたロード構成から始まります。
- Builder()、ビルダーを手に入れる必要があります。
- WithRelations(new { "Relation1", "Relation2" }): はビルダー内の荷重構成を変更します。これは他のすべてのビルダーメソッドと連携させることができます。
- .Build(): ついにビルドプロセスを終え、最終的なロード設定が完了します。