ホームページ >バックエンド開発 >C++ >LINQ クエリで WHERE 句を動的に構築する方法

LINQ クエリで WHERE 句を動的に構築する方法

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-14 06:57:43595ブラウズ

How to Dynamically Build WHERE Clauses in LINQ Queries?

LINQ の WHERE 句の動的構築

LINQ クエリを構築するときは、ユーザー入力または実行時の条件に基づいて WHERE 句を動的に組み立てる必要がある場合があります。これは、複雑なフィルターや動的なデータ選択を扱う場合に特に便利です。

たとえば、フィールド名とそれに対応する値の辞書として渡す多数のチェックボックスを備えたフォームがあるとします。この動的フィルタリングを LINQ クエリに組み込むには、提供されたコード例で示されているチェーン方法を使用できます。

<code class="language-c#">var q = from c in db.ProductDetail
        where c.ProductGroupName == productGroupName && c.ProductTypeName == productTypeName
        select c;

foreach (var filterPair in filterDictionary)
{
    q = q.Where(c => filterPair.Value.Contains(c.GetPropertyValue(filterPair.Key)));
}

q = q.OrderBy(c => c.ProductTypeName);</code>

この例では、filterDictionary が反復処理され、フィルター ペア (キーと値のペア) ごとに、新しい WHERE 句がクエリに追加されます。 GetPropertyValue メソッドを呼び出して、指定された fieldName のプロパティ値を動的に取得します。

ソリューションで提供されているサンプル コードに示すように、最初のクエリ ステートメントで WHERE 句を直接連結することもできます。

以上がLINQ クエリで WHERE 句を動的に構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。