1. スクリプティングSDK

負荷構成

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

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

SDKとStylelabs.M.Base.Queryingでは、負荷設定と負荷オプションを使用して、次の項目を指定します。

  • エンティティをロードする必要があるかどうか

  • エンティティを読み込む必要があるカルチャ

  • エンティティにロードするメンバー

負荷構成は1か所にあります: Stylelabs.M.Framework.Essentials.LoadConfigurations.ロード・オプションは、Stylelabs.M.Framework.Essentials.LoadOptionsにあります。

先端

ロード・オプションと構成を使用してロードするデータ量を最小限に抑え、サーバーのオーバーヘッドを最小限に抑えてください。

このセクションでは、さまざまなロード・オプションと、ロード・オプションとともにロード構成を使用する方法について説明します。

ロードオプション

ロードオプションは、特定のアイテムをロードする方法を指定する「アトミックユニット」です。現在サポートされているロード・オプションは次のとおりです。

  • カルチャーロードオプション

  • プロパティのロードオプション

  • リレーション・ロード・オプション

すべてのロードオプションには、一般的なユースケースのためのデフォルトインスタンス、静的インスタンス、および読み取り専用インスタンスがあります。また、読み込みオプションにはコピー コンストラクタがあります。これを使用して、読み取り専用の読み込みオプションをコピーして変更できるようにすることができます。

上記のすべてのロードオプションクラスには、次のようなLoadOption (列挙型)プロパティがあります。

  • 何一つ

  • デフォルト

  • 習慣

  • すべての

Customに設定すると、オブジェクトはPropertyLoadOptionのプロパティ名のリストを指定して、ロードする対象を指定する必要があります。LoadOptionCustomに設定されていない場合、リストは無視されます。

カルチャーロードオプション

既定のカルチャ読み込みオプションを次に示します。

  • CultureLoadOption.All: Sitecore Content Hubに登録されているすべてのカルチャを読み込みます。

  • CultureLoadOption.Default: Sitecore Content Hubの既定のカルチャを読み込みます。

  • CultureLoadOption.None: カルチャをロードしません。

メモ

エンティティがカルチャなしで読み込まれると、エンティティにカルチャに依存するプロパティはありません。

エンティティが特定のカルチャ セットに読み込まれると、カルチャに依存するプロパティはそれらのカルチャでのみ使用できます。

特定のカルチャのセットを読み込むには、次のいずれかの方法を使用して新しいCultureLoadOptionを作成します。

  • ロケール識別子 (LCID) をカンマで区切って渡すと、次のようになります。

    new CultureLoadOption("en-US", "nl-BE");
  • ロケール識別子 (LCID) の任意のタイプのコレクション ( IEnumerableから派生) を渡すことによって、次のようになります。

    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、definition、作成者、作成者など)のみです。

  • 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():最後に、ビルドプロセスを終了し、最終的なロード構成を取得します。

この記事を改善するための提案がある場合は、 お知らせください!