LINQ の動的 WHERE 句
複雑な LINQ クエリを作成する場合、ユーザー入力またはその他の実行時要因に基づいて WHERE 句を動的に組み立てる必要がある場合があります。この記事では、LINQ を使用してこれを効率的に実現する方法について説明します。
動的 WHERE 句を組み立てます
動的な WHERE 句を組み立てる 1 つの方法は、クエリ内で複数の WHERE 句を連鎖させることです。これにより、特定の基準に基づいてフィルターを追加または削除できます。
これは例です:
<code class="language-csharp">var q = from c in db.ProductDetail where c.ProductGroupName == productGroupName && c.ProductTypeName == productTypeName select c; // 动态过滤 foreach (var filter in filterDictionary) { string fieldName = filter.Key; List<string> values = filter.Value; if (values.Count > 0) { q = q.Where(c => values.Contains(c[fieldName])); } }</code>
この例では、filterDictionary 内のキーと値のペアごとに、対応するフィールド名に値があるかどうかを確認します。存在する場合は、これらの値に基づいて結果をフィルターする新しい WHERE 句をクエリに追加します。
WHERE 句をリンク
複数の WHERE 句を連鎖させることで、複雑で動的なフィルター条件を簡単に作成できます。たとえば、複数のフィールドでフィルターしたり、値の範囲を確認したり、AND や OR などの論理演算子を使用して複数の条件を組み合わせたりできます。この柔軟性により、シナリオの特定の要件に基づいてクエリをカスタマイズできます。
以上がLINQ で動的 WHERE 句を作成して変数フィルター条件を処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。