1. 読み込み設定

読み込み設定

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

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

この SDK と Stylelabs.M.Base.Querying は、読み込み設定と読み込みオプションを使用して以下の各設定を指定します。

  • エンティティを読み込む必要があるかどうか
  • どのカルチャにエンティティを読み込む必要があるか
  • どのメンバーでエンティティを読み込むか
注意

読み込み設定は Stylelabs.M.Framework.Essentials.LoadConfigurations にあります。
読み込みオプションは Stylelabs.M.Framework.Essentials.LoadOptions にあります。

ヒント

サーバーに対するオーバーヘッドを最小限に抑えるために、読み込みオプションと読み込み設定を使用して最小限の量のデータを読み込むようにします。

このセクションでは、最初にさまざまな読み込みオプションについて説明し、次に読み込みオプションを指定して読み込み設定を使用する方法を紹介します。

読み込みオプション

読み込みオプションは、特定のアイテムを読み込む方法を指定する "atomic 単位" です。現在サポートされている読み込みオプションは次のとおりです。

  • カルチャ読み込みオプション
  • プロパティ読み込みオプション
  • リレーション読み込みオプション

どの読み込みオプションにも、一般的なユース ケース向けとして、既定のインスタンス、静的インスタンス、および読み取り専用インスタンスがあります。また、読み込みオプションにはコピー コンストラクターもあります。このコンストラクターを使用すると、読み取り専用の読み込みオプションをコピーして変更できます。

上記のすべての読み込みオプション クラスには、次の値を指定できる 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"));
  • CultureInfo インスタンスの任意のタイプのコレクション (IEnumerable から派生) を渡す。

    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);

読み込み設定

読み込み設定は、複数の読み込みオプションを集約した "molecular 単位" です。

注意

読み込み設定にも既定の設定値があるほか、コピー コンストラクターを使用できます。

注意

IQueryLoadConfiguration については説明しましたが、Query と LoadConfiguration は分割されているので、IQueryLoadConfiguration の使用は SDK 内部のみに限定する必要があります。

エンティティ読み込み設定

この設定の構成要素は次のとおりです。

  • CultureLoadOption
  • PropertyLoadOption
  • RelationLoadOption

既定のエンティティ読み込み設定は次のとおりです。

  • EntityLoadConfiguration.Minimal: カルチャ、プロパティ、リレーションを指定せずにエンティティを読み込みます。システム プロパティのみを使用できます (id、definition、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(): 最後に構築プロセスを終了すると、最終的な読み込み設定が得られます。
この記事を改善するための提案がある場合は、 お知らせください!