現在、odataを使用してサーバー側のフィルタリングを実行するアプリケーションで、サードパーティのグリッドコントロールを使用しています。検索ボックスに入力すると、フィルタ文字列はすべてのフィールドに適用され、一致するフィールドのみが返されます。Microsoft OData C#WebApi文字列のフィルタリングまたはキャスト
私は表示している2つのフィールド、整数Idフィールド、および文字列Nameフィールドを持っています。
(substringof( '24')ID(TOLOWER))または(substringof( '24'、TOLOWER(名)))
:フィルタが適用されたとき、ODATAはフィルタを含んODataQueryOptionsデータ型を提供しIdに24、名前フィールドに24のレコードを返すことが期待されます。
代わりに例外が発生します。例外は、IdがIntフィールドであり、tolowerおよびsubstringという文字列関数が整数フィールドに実装されていないために発生します。
キャストは実装されていないようですので、単にintに文字列をキャストすることはできません。
この問題は、多くの他の多くの人々にとって問題であったに違いありません。だから、他の人たちはこの問題をどのように乗り越えますか?
(nugetによると、私はMicrosoft.Data.ODataのv5.8.2、およびMicrosoft.AspNet.Webapi.ODataのV5.7.0を使用しています。私のプロジェクトは、.NET Framework 4.5.2である)