問題タブ [predicatebuilder]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1986 参照

zend-framework2 - Zend Framework 2 PDOの「好きではない」操作

どこで「好きではない」操作を行う必要があります。私はこれを行うことができることを知っています:

$predicate->like($a,$b);

しかし、「not like」やその他の否定された「not in」を実行する方法が見つかりません。方法はありますか、どこで文字列を作成する必要がありますか?

ありがとう。

0 投票する
2 に答える
1360 参照

c# - エンティティへのlinqと式の格納

私は、エンティティに対して動的なlinqクエリを使用するプロジェクトに取り組んでいます。私は膨大な量のケースを抱えており、コードの重複を避けるためにメソッドにリファクタリングしています。ただし、ストア式にないメソッドを使用すると、例外がスローされます。解決策の1つは、メソッドの結果を、linqで解釈してクエリを開始できる式にカプセル化することです。

そのコードを考えてみましょう:

「parentExpression」は、私のEFの「Parent」タイプの述語です。このコードは例外をスローします。「IsGoodChild」メソッドはブール値を返し、linqによってエンティティに解釈できません。

だから、私はこのようなものが欲しいです:

では、x.child属性を受け取らなくても、「IsGoodChild(...)」はどのように機能するのでしょうか。事前のThx


再、

このような式でラムダを直接書くとき、私は何かを試みます:

私はresharperからextractメソッドを使用し、これを生成しました:

しかし、.NETFrameworkデータプロバイダーエラー1025'エラーもあります...

0 投票する
1 に答える
1148 参照

c# - Entity Framework のバグ: PredicateBuilder の例外と null の比較

メソッド (以下) を LinqPad で実行することはできましたが、(Entity Framework を使用して) 実際のコードに切り替えると、次のエラーが発生します。

「型 'System.Nullable`1' を型 'System.Object' にキャストできません。LINQ to Entities は、EDM プリミティブまたは列挙型のキャストのみをサポートしています。」

ここでコメント化された 2 行のいずれかのコメントを外すと、エラーが発生します (実際のエラーは、メソッドの最後の行が実行されるまで発生しません)。

これは、manufacturerId と partNumber がnull 許容の 10 進数であるためだと思います。問題は、これらの変数が null になる可能性があり、それらが null であることによって結果をフィルタリングしたいことです。これは EF では機能しませんか、それともこれを回避するエレガントな方法はありますか?

編集

明確にするために、manufacturerId が null として渡された場合、この行を使用すると 5 つの行が返されます (DB を調べることで確認できます)。

この行を使用すると、行は返されません。

問題は、適切なmanufacturerIdを渡すと、上記のエラーが発生することです。

0 投票する
1 に答える
963 参照

c# - PredicateBuilder がゼロのレコードを返す

PredicateBuilder を使用して動的 Where 句を作成し、DataTable からデータをクエリします。検索する必要がある列名と値を含む Dictionary があります。キーが列名と一致する場合は、辞書を反復処理しているだけで、そのキーと値を述語に追加します。実際のクエリがデータテーブルに対して実行されるまで、すべてが正常に機能しているように見えますが、レコードが返されません:(しかし、動的述語を p => p["Year"] == "2010" のようなものに置き換えると、レコードが取得されますコードは次のとおりです。

どんな助けでも大歓迎です:)

0 投票する
1 に答える
1344 参照

linq - リスト内のLinq部分一致?

テーブルで照合する必要のある部分的な文字列のリストがあります。PredicateBuilderを使用しています。

n.Company="テスト名"

これは、n.Companyが正確に「テスト名」である場合は一致しますが、「テスト」を使用する場合は一致しません。リストのパーシャルを一致させるにはどうすればよいですか。

0 投票する
0 に答える
3317 参照

linq - linqkitを使用した動的LINQ

http://www.albahari.com/nutshell/predicatebuilder.aspxからのこの例に従って

同様の要件がありますが、最初にANDクエリを実行する必要があり、次に上記の例とは異なり、一連のフィールド名とそれぞれで検索する値があります。フィールド名と値はどちらも、ユーザーが通過するまで不明です。私は最終的に以下のコードのようなものを実行しましたが、これは機能しますが、明らかに非常に緊密に結合されています。

上からわかるように、Ruleクラスにはfieldプロパティとdataプロパティがあります。理想的なのは、predicatebuilderを動的に作成できるかどうかです。

ご入力いただきありがとうございます

0 投票する
1 に答える
3176 参照

linq - Linq PredicateBuilder、グループ化、および演算子の優先順位

問題の例を次に示します。

両方の式の Watches を調べると、次のように表示されます。

PredicateBuilder の動作がデフォルトの Linq Expression Builder と異なる場合、PredicateBuilder を使用するのは少し安全ではないと思います。

ここでいくつかの質問:

1) Linq がこれらのグループを作成するのはなぜですか? Or式を作っても

最初の 2 つの基準は、次のようにグループ化されています。

なぜそれだけではないのか

?

2) PredicateBuilder がこれらの呼び出しを追加するのはなぜですか? デフォルトのLinq式の結果にInvokesが表示されないため、役に立たないようです...

3) 式を「オフライン」で構築し、デフォルトの Linq 式ビルダーに渡す他の方法はありますか? このようなもの:

次に、Linq 式ビルダーがそれを解析し、x => x.Id == 1 || の場合と同じ式を作成します。x.Id == 3 && x.Id > 2 (&& を優先)? または、PredicateBuilder を微調整して同じことを行うことはできますか?

0 投票する
0 に答える
524 参照

c# - PredicateBuilder と複数レベルのネストされたエンティティ セット

動的にネストされた述語式に頭を悩ませようとしています。うまくいっていません。

基本的に、固定された一連のプロパティに対して動的クエリを作成できるようにする必要がありますが、動的な (場合によっては無制限の) 数の (ネストされた) レベルに対して作成する必要があります。

家系図を例にとると、クエリを記述して次の結果のいずれかを取得できるはずです。

  • 子供を持つすべての親を見つける
  • 名前が「k」で始まる子供を持つすべての親を見つける
  • 2013 年 1 月 1 日以降に生まれた子供がいて、名前が "John" である子供を持つすべての親を検索します。

私は手で似たようなものを書くことができますが、それはうまくいきます。

質問は、任意の数のネストされたレベルで混合プロパティと演算子を使用して上記のコードを動的に作成するにはどうすればよいですか?

0 投票する
1 に答える
1250 参照

linq - PredicateBuilder を使用して、フィールド名の可変長リストから述語を作成する方法はありますか?

可変数のフィールド名を含むリストがあります。このリストをループして、フィールドに値を持つすべてのレコードをフィルター処理する述語を作成したいと思います。

これを行う方法がわかりません。助言がありますか?

ティア

0 投票する
1 に答える
1451 参照

linq - LINQ:動的述語ビルダーの問題

動的LINQクエリを簡単に構築するためのヘルパークラスを作成しようとしています。コードは、この優れたCodeProject記事の大幅に変更されたバージョンです:http://www.codeproject.com/Articles/493917/Dynamic-Querying-with-LINQ-to-Entities-and-ExpressここでPredicateBuilderを使用します:http:// www.albahari.com/nutshell/predicatebuilder.aspx

私はまだコードをクリーンアップしている最中なので、変数名は現時点ではごちゃごちゃしていて、コメントは1つも見えません。

使用法

実在物

検索用のストレージ

メソッド

そして問題のある方法

何が問題ですか?

5つのアスタリスクで囲まれた最後のメソッドの行が問題です。

ORグループ化された式を元の述語ビルダーに追加すると、次のようになります。

パラメーター'f'は、指定されたLINQtoEntitiesクエリ式にバインドされていませんでした。

どういうわけか、ネストされた式を作成できないようです。使用法のサンプルでクエリが実行される場所に上記のコードを配置すると、(いくつかのmodを作成した後に)機能します。

ソリューションで更新:

アスタリスクの付いた行を次のように変更する必要があります Return predicate.And(inner.Expand)