問題タブ [odata-v4]

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

c# - 「and」演算子を使用した OData フィルターが Web API で機能しない

以下の取得リクエストを処理する単一の GET アクションで Web Api を作成しています。

GET https://localhost:44378/v1/RoutePrefix/Route ?$filter=Id eq '1234'$select=Name (これは問題なく動作します)

GET https://localhost:44378/v1/RoutePrefix/Route ?$filter=Id eq '1234' または MessageType eq '1' (これは問題なく動作します)

GET https://localhost:44378/v1/RoutePrefix/Route ?$filter=Id eq '1234' and MessageType eq '1' (これは機能していません。応答値は常に [] です)

「and」演算子を使用したフィルターが機能していないようです。「または」演算子は私にとってはうまく機能します。

webapiconfig.cs に以下のコードがあります。

私のコントローラーでは、フィルターパラメーターの数に基づいて、別のメソッドを呼び出します。どちらのメソッドも、GET メソッドへの応答として List を返します。メインの get メソッドでは、Ok(List.AsQueryable()) として返します。

[EnableQuery] 属性でコントローラーを装飾し、以下のように ODataController を実装しました。

[EnableQuery] public class RouteController : ODataController

Get メソッドは次のようになります。

何が間違っているのか教えてください。

ありがとう