---
title: "荷重構成"
slug: "load-configurations-1523416"
abstract: "負荷構成とオプションの概要と例付き。"
---
# 荷重構成

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が言及されていましたが、QueryとLoadConfigurationが分割されて以来、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(): ついにビルドプロセスを終え、最終的なロード設定が完了します。