問題タブ [iqueryprovider]

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 に答える
631 参照

c# - IQueryProvider の実装で Linq.EnumerableQuery を構築するときのコンパイラ エラー

IQueryProvider の実装があり、次のメソッドがあります。

items プロパティは次のように定義されます。

EnumerableQuery コンストラクターで不可解なコンパイラ エラーが発生します。

私は何を間違っていますか?どこかのジェネリックにラップされている可能性が高いことはわかっていますが、引数は同じように見えます!

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

php - 25 行目の非オブジェクトに対するメンバー関数 query() の呼び出し

私はこのPHPの致命的なエラーを取得しています:

致命的なエラー: の非オブジェクトに対するメンバー関数 query() の呼び出し

C:\xampp\htdocs\University\createTables.php 25 行目

createTables.php

connect.php

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

c# - それ以外の場合は Linq to Objects プロバイダーに委譲するオブジェクトの比較式をインターセプトしてオーバーライドする

ここでの目標は、いくつかの WCF Data Services クエリ シナリオをテスト対象のコードに正確に反映させることです。

ここで説明されている EF 機能のモックと同じパターンに従って、DataServiceQuery ラッパー クラスをモックし、テスト データで .AsQueryable() を呼び出して返された IQueryable に委任しています。

特定の等価式のオブジェクトへの LINQ の動作をオーバーライドしたい (問題がある場合は、2 つのバイト配列を比較する場合)。参照の代わりに配列内の値を比較したい (例: を使用SequenceEqual)。

これを達成する方法は、式にアクセスするプロバイダーを作成し、適切な値を取り出し、新しい式を作成して、それを LINQ to objects プロバイダーに渡すことです。それは大変な作業です。これを行う以外に、これを行う簡単な方法はありますか、それとも式の解析に頼る必要がありますか?

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

asp.net-web-api - 他の OData サービスをソースとする WebApi OData サービス

既存の内部 OData サービスがあります。

目標は、外部ユーザー向けの新しいサービスを作成することです。

odata クライアントを使用して IQueryable を作成し、フィルターを追加して WebApi を使用して公開しようとしました。

それだけ簡単です。それでも機能しません。ms odata クライアントの QueryProvider は、ms webapi odata によって構築された式をサポートしていないようです。

このコードは機能しています

このリクエストは

http://localhost:44301/Model?$filter=contains(Test,'qwe')

例外

The expression (IIF((($it.Test== null) OrElse False), null, Convert($it.Test.Contains(\"qwe\"))) == True) is not supported.

データをキャッシュする必要はなく、クエリを提供するだけなので、アイデア自体は気に入っています。

これを機能させる方法はありますか?

現在、私が見る唯一のオプションは、カスタム QueryProvider を作成することです。

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

c# - LINQ-to-Objects でプロジェクションを処理するにはどうすればよいですか?

私の目的には問題なく動作する基本的な (素朴な?) LINQ プロバイダーを実装しましたが、対処したい癖がいくつかありますが、その方法がわかりません。例えば:

私のIQueryProvider実装には、次のCreateQuery<TResult>ような実装がありました。

明らかに、これはExpressionが aMethodCallExpressionでありTResultである場合にチョークします。string

そのため、実行するvar vendorCodes = context.Vendors.Select(e => e.Key);private static object Execute<T>(Expression,ViewSet<T>)オーバーロードが発生し、最も内側のフィルター式のメソッド名がオンになり、基になる API で実際の呼び出しが行われます。

さて、この場合、Selectメソッド呼び出し式を渡しているので、フィルター式はnullあり、switchブロックはスキップされます-これは問題ありません-私が行き詰まっている場所は次のとおりです。

MethodCallExpressionLINQ-to-Objects のSelectメソッドに渡すことができるようにするには、何をする必要がありますか? 私はこれに正しく近づいていますか?