LINQクエリ
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
このセクションでは、Sitecore Content Hubで特定のエンティティを検索するクエリを作成する方法について説明します。
クエリ オブジェクト自体はクエリを実行しませんが、クエリの条件を記述します。 クエリを実行するクライアントは 、クエリの実行を担当します。
最初に、Sitecore Content HubでのLINQクエリのオプションと構造について説明し、最後にいくつかの例を示します。
LINQの使用を開始する
クエリを作成するには、LINQを使用することをお勧めします。LINQに詳しくない場合は、LINQをご覧くださいhttps://learn.microsoft.com/en-us/dotnet/csharp/linq/get-started/introduction-to-linq-queries。
LINQクエリを完全に使用するには、次のusingがあることを確認してください。
テンプレート
LINQテンプレートは次のとおりです。
where句の複数の条件は、&&を使用して連結できます。
orderbyを使用して、特定の (システム) プロパティ (昇順または降順) に基づいて結果を並べ替えることができます。複数のorderbyステートメントを使用して、より複雑な順序付けを行うことができます。
サポートされているエンティティフィルター
エンティティに対する次のフィルターは、LINQクエリでサポートされています。
システム・プロパティ
-
同上 (long)
-
識別子 (long)
-
定義
-
ID (long)
-
名前 (string)
-
-
作成者
-
ユーザーID (long)
-
ユーザー名 (string)
-
-
によって変更されました
-
ユーザーID (long)
-
ユーザー名 (string)
-
-
作成日 (DateTime)
-
変更日 (DateTime)
たとえば、idでフィルタリングするには、次のようにします。
システム・プロパティ
システム・プロパティーのデータ・タイプに応じて、以下のようになります。
-
長い: ==, !=
-
文字列: ==, !=
-
日時: ==,!=,>,<,>=,<=
たとえば、指定した日付より後に変更されたエンティティをフィルタリングするには、次のようにします。
エンティティメンバー
-
プロパティ値 (特定のカルチャの値のフィルター処理もサポート)
-
リレーション( parent IDでのみフィルタリング可能)
たとえば、プロパティ値でフィルタリングするには、次のようにします。
サポートされている比較演算子
次の比較演算子は、LINQクエリでサポートされています。
プロパティ
プロパティのデータタイプに応じて、次のようになります。
-
文字列: ==, !=
-
int: ==, !=, >, <, >=, <=
-
長: ==、!=、>、<、>=、<=
-
10進数: ==、!=、>、<、>=、<=
-
ブール: ==, !=
-
日時: ==, !=, <, >, >=, <=
-
DateTimeOffset: ==, !=, >, <, >=, <=
たとえば、タイトルが「Logo」でないエンティティをフィルタリングするには、次のようにします。
追加のプロパティフィルター
エンティティに対する次のプロパティ フィルターは、LINQクエリでもサポートされています。
「in」フィルター
Inフィルターを使用すると、コレクションまたはコンマ区切り値を指定できるため、1つの値ではなく複数の値をフィルタリングできます。
Inフィルターは、次の場所でサポートされています。
-
エンティティID
-
エンティティ識別子
-
プロパティ値
-
リレーション値 (親IDのみ)
タイトルが「Logo」または「Poster」に設定されているエンティティを見つけましょう。
文字列フィルター
文字列プロパティは、いくつかの追加フィルターをサポートしています。
-
Contains: 値には、指定した部分文字列が含まれている必要があります。
-
StartsWith: 値は、指定した部分文字列で始まる必要があります。
-
EndsWith: 値は、指定した部分文字列で終わる必要があります。
これらのフィルターでは、大文字と小文字は区別されません。
次のクエリを使用すると、"logo" を含むTitleプロパティを持つすべてのエンティティを検索できます。
サポートされている注文
注文は以下でサポートされています。
-
エンティティID
-
エンティティ識別子
-
定義ID
-
定義名
-
作成者:ユーザーID
-
ユーザー名で作成
-
ユーザーIDによる変更
-
ユーザー名による変更
-
作成日
-
変更日
-
プロパティ値
たとえば、アセットを作成日に並べ、次にタイトル順に並べ替えるには、次のようにします。
オプションを選択
現在、ロード・オプション操作と構成操作のみがselect句でサポートされています。
ロード・オプションと構成
バージョン3.1以降、これらの操作は廃止されました。読み込み構成とクエリ オブジェクトは分離されており、個別のパラメーターとして渡す必要があります (該当する場合)。
次の選択オプションがサポートされています。
-
InCultures: 指定したカルチャのエンティティを読み込みます
-
WithProperties: 指定したプロパティをエンティティに読み込みます
-
WithRelations: エンティティ上の指定されたリレーションを読み込みます。
-
LoadConfiguration: 指定した荷重コンフィギュレーションを持つエンティティをロードします。
これらの選択オプションを複数連結できます。該当する場合は、最後の操作で常に前の操作が上書きされます。
この例では、既定のクエリ読み込み構成 (既定のカルチャ、すべてのプロパティを読み込み、リレーションを読み込みません) から開始し、AssetTypeToAssetリレーションを追加します。このWithRelationsは、以前に設定した負荷設定のリレーション負荷オプションを上書きします。
詳細については、「 負荷構成」を参照してください。
結果演算子
skip (最初のxエンティティをスキップ) とtake (xエンティティを返す) は、LINQを使用する場合にもサポートされます。
これにより、エンティティは降順id並べ替えられ、最初のエンティティまたは最新の5つのエンティティがスキップされ、次の5つのエンティティが返されます。
例
以下は、その例のリストです。これらの例のほとんどは非常に単純で、一目瞭然です。例は、最後の方で複雑になる傾向があります。
IDで
識別子別
定義上、id
定義上、名前
作成者:ユーザーID
作成者:ユーザー名
ユーザーIDによる変更
ユーザー名による変更
作成者 作成者
また、2つの日付間でも可能です。
By変更日
また、2つの日付間でも可能です。
プロパティ値別
プロパティTitleが「Logo」に設定されているすべてのエンティティを検索します。
特定の文化における資産価値別
プロパティDescriptionが英語のカルチャで "Hello world!" に設定されているすべてのエンティティを検索します。
リレーションの親の値による
エンティティオブジェクトで親プロパティにアクセスして、指定したリレーションをクエリできます。リレーションをクエリするには、リレーション名と親IDを指定する必要があります。
より高度なクエリ
次のクエリは、タイトルが "Logo" である "M.Demo.User" によって作成された最後の10個のアセットを取得します。