ホームページ > バックエンド開発 > C++ > LINQ to Entities で OR ロジックを使用して動的な WHERE 句を構築する方法

LINQ to Entities で OR ロジックを使用して動的な WHERE 句を構築する方法

Patricia Arquette
リリース: 2025-01-22 04:51:10
オリジナル
876 人が閲覧しました

How to Build Dynamic WHERE Clauses with OR Logic in LINQ to Entities?

OR ロジックを使用して、LINQ to Entities で動的な WHERE 句を構築します

LINQ to Entities は遅延実行を使用して動的クエリを構築します。ただし、これらのクエリでは通常、AND を使用して WHERE 条件を接続します。 OR ロジックを実装するには、LINQKit などの述語ビルダー ライブラリの使用を検討してください。

LINQKit の PredicateBuilder を使用する

LINQKit では、PredicateBuilder を使用して述語を動的に構築できます。提供されたコードの修正バージョンは次のとおりです:

<code class="language-c#">var query = from u in context.Users select u;
var pred = Predicate.False<user>();

if (type.HasFlag(IdentifierType.Username))
    pred = pred.Or(u => u.Username == identifier);

if (type.HasFlag(IdentifierType.Windows))
    pred = pred.Or(u => u.WindowsUsername == identifier);

return query.Where(pred.Expand()).FirstOrDefault();</code>
ログイン後にコピー

Expand() メソッドは、呼び出し側の式を Entity Framework が理解できる単純な構造に置き換えます。これがないと、クエリの実行中に例外が発生します。

その他の述語ビルダー

代わりに、Peter Montgomery のユニバーサル述語ビルダーの使用を検討してください: https://www.php.cn/link/cfaedf8d25fee6179bfc4bcb64bbbfbd()`。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート