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

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

Mary-Kate Olsen
リリース: 2025-01-22 05:01:08
オリジナル
637 人が閲覧しました

How to Build a Dynamic WHERE Clause with OR in LINQ to Entities?

LINQ to Entities の動的 WHERE 句 (OR)

LINQ で OR 演算子を使用して動的クエリを作成するには、LINQKit ユーティリティである PredicateBuilder が必要です。その方法は次のとおりです:

<code class="language-csharp">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>
ログイン後にコピー

ただし、AsExpandable() を使用することもできます:

<code class="language-csharp">return query.AsExpandable().Where(pred).FirstOrDefault();</code>
ログイン後にコピー

Expand メソッドを使用すると、EF では処理できない呼び出し式を処理できます。これがないと例外がスローされます。

Expand を使用せずに同じ機能を実現する別の述語ビルダー オプションは、http://petemontgomery.wordpress.com/2011/02/10/a-universal-predicatebuilder/ にあります。

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

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