問題タブ [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 投票する
1 に答える
220 参照

mysql - Predicate Builder を使用した MySQL が機能しない?

3 つのフィールドに基づく小さなフィルタリングを開発しています。MVC 3 プロジェクトでも MySQL コネクタを使用しています。

見栄えの良い PredicateBuilder http://www.albahari.com/nutshell/predicatebuilder.aspxを見つけました。しかし、MySQLでは動作していないようです

しかし、resultには 0 要素が含まれています。なんで ?

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

lucene - RavenDB と PredicateBuilder

PredicateBuilder クラスを使用して、RavenDB が解釈して使用できる WHERE 句を構築することは可能ですか? session.Query() と LuceneQuery を試しましたが、それぞれ失敗しました:

session.Query() の試みは次のとおりです。

これは実行時エラーです。

Lucene.Net.QueryParsers.ParseException: '( OR) OR' を解析できません: 行 1、列 2 で " "OR "" が見つかりました。

LuceneQuery() を試してみると、次のようになります。

のコンパイル時エラーが発生します。

エラー 2 'Raven.Client.IDocumentQueryBase>.Where(System.Func)' は廃止されました: ' Where(x=>x.Name == "Ayende") などのインメモリ フィルタを IDocumentQuery で発行することはできません。

編集:これは、最初の例で whereClause がどのように見えるかです:

{f => ((False OrElse Invoke(x => (Convert(x).EquipmentId == value(ReadFromRaven.Logic.Readers.RavenReader 1+<>c__DisplayClassa[WriteToRaven.Data.Marker]).tempCoater.MarkerEquipmentId), f)) OrElse Invoke(x => (Convert(x).EquipmentId == value(ReadFromRaven.Logic.Readers.RavenReader1+<>c__DisplayClassa[WriteToRaven.Data.Marker]).tempCoater.MarkerEquipmentId)), f))}

編集 2: これが WHERE 句の作成方法です

これは呼び出しです:

そして、これは BuildWhereClause() メソッドの署名と重要なメソッドの部分です:

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

c# - PredicateBuilder 再利用可能な DateTime 述語セッター

PredicateBuilderを使用して動的検索句を生成しています。以下のサンプル コードSetDateTimePredicateを の任意のDateTimeプロパティに使用できるように変更する方法はありSomeTypeますか?

拡張メソッドを試しましたが、次のエラーが発生します。

延長方法:

拡張メソッドのサンプル:

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

c# - MVC3の述語ビルダー

私は2日間PredicateBuilderをいじっていますが、すべてのWebサイトで、何らかの理由(おそらく私のせい)で実装するのは非常に簡単だと言われていますが、動作させることができません。検索する列がわかっていて、すべて同じテーブル内にあるため、述語ビルダーを使用することにしました。私がやろうとしているのは、3つの列のいずれかに存在する可能性のあるキーワードを複数の列で検索することだけです。Predicate Builderでこれを簡単に実行できることを読みましたが、チュートリアルでは明らかに私を説明していませんでした。以下は私がこれまでに持っているものです、誰かが私を正しい方向に向けることができれば私はそれをいただければ幸いです。現在、検索しても何も実行されていません。すべてのレコードが返されるだけです。ご協力いただきありがとうございます!

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

entity-framework-4 - LINQtoEntitiesおよびLinqKit/PredicateBuilderを使用してリファクタリングできません

LINQ式をメソッドにリファクタリングしようとしていて、" Internal .NET Framework Data Provider error 1025."と""の両方のThe parameter 'xyz' was not bound in the specified LINQ to Entities query expression.例外が発生しています。

エンティティモデルの関連部分は次のとおりです(EF 4.2 / LINQ to Entitiesを使用)。

基本的なリレーショナルモデルは次のとおりです。

検索が行われると、 ORで始まるエンティティ、または検索で始まるエンティティを検索するクエリを作成しようとしてtermいます。(これはクエリの一部ですが、sはにのみ一致する必要があるため、問題が発生している場所ではありません。)PlaceOfficialNametermPlaceNameTextAsciiEquivalenttermLanguagePlaceNameCultureInfo.CurrentUICulture.TwoLetterIsoLanguageName

次のコードは機能します:

次にやろうとしているのは、メソッドをリファクタリングしNonOfficialNameMatchesて式を別のメソッドに抽出し、name => ...他のクエリで再利用できるようにすることです。これが私が試した1つの例ですが、これは機能せず、例外 ""をスローしますThe parameter 'place' was not bound in the specified LINQ to Entities query expression.

.AsExpandable()チェーンがない場合NonOfficialNameMatches、" Internal .NET Framework Data Provider error 1025."例外が発生します。

ここでは、述語の呼び出しのいくつかの組み合わせなど、他のアドバイスに従い.Expand()ましたが、常に前述の例外の1つになります。

LINQ to Entities with LinqKit / PredicateBuilderを使用して、この式を別のメソッドに分解することも可能ですか?もしそうなら、どのように?私は何が間違っているのですか?

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

predicatebuilder - PredicateBuilder where 句の問題

PredicateBuilder を使用して where 句を生成しています

次のエラーが表示されます。誰かがこれを助けることができますか、それとも何か間違っていますか。

インスタンス引数: 'System.Data.Linq.EntitySet' から 'System.Linq.IQueryable' に変換できません

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

linq - Linq PredicateBuilder 複数条件

PredicateBuilder の複数の基準を設定するには?

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

linq - PredicateBuilder を使用して自己完結型のブール式を作成する

PredicateBuilder を使用して、特定のレコードのセットがすべて Expression 内に存在するかどうかを判断する方法を理解しようとしています。したがって、仕様として OrderId と ProductId のリストが与えられた場合、Order の OrderDetail レコードにすべての仕様項目が含まれているかどうかを知りたいと思います。それらの1つまたは一部だけではなく、それらすべてです。

だから私はできる:

しかし、結果を取得した後、a) 重複を排除し (私の場合、複数の OrderDetails が同じ ProductId を持つ可能性があるため)、b) 結果のカウントを仕様のカウントと比較する必要があります。これはすべて Expression の外で実行できますが、結果がブール値になるように Expression 内のすべてを評価するエレガントな方法はありますか?

つまり、式を自己完結型にして、そのまま渡すことができるようにしたいと思います。また、それを渡す人は、それが真かどうかを判断するために「後処理」を行う方法を知る必要がありません。 .

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

c# - LINQ to WCF Data Services で構成された述語を単純化する方法は?

PredicateBuilderColin Meek の同等のものを使用して、WCF Data Services に適した (呼び出し式などを使用しない) 方法で述語を構成しています。これらは一部のクエリでは機能しますが、クエリの複雑さが増すにつれて「再帰が許可された制限に達しました」で失敗します。残念ながら、この制限は、私のコードの通常の状況で予想される制限を下回っています。また、いつこの制限に達するかを事前に判断することもできません。

次のことが可能です。

  • WCF Data Services に到達する前に述語を単純化しますか?
  • クエリの複雑さが WCF Data Services の制限をいつ超えるかを判断しますか?

私のコードでは、'state' パラメーターと 'city' パラメーターを受け入れる Azure Data Market サービスの述語を作成しています。各都市*州の組み合わせに対して呼び出しを発行するのではなく、次の行に沿って述語を構成しています。

式ツリーのため、実際には述語は次のようになります。

LINQPad を使用して、リクエストをキャプチャし、手動で単純化し、これらの作業が単純化されたことを証明できます。私のコードでは単純化が試みられていないため、Azure Data Services にヒットする OData クエリは過度に複雑/再帰的であり、例外が生成されます。上記の概要では、(x または y) または z == x または y または z などの単純化を適用します。これにより、クエリの複雑さを十分に軽減して、合格することができます。したがって、上記の2つの質問。

ヘルプ/ポインタは大歓迎です!

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

c# - PredicateBuilder は、明示的な false ステートメントを追加した後でも true のままです

以下の発言があります。

最初は表現を試みていました。何も成功しなかったので、代わりにこの「false」を試しました。私が何をしたとしても、それは同じです。何が起こっている?