4

レポートツールとして新しいASP.NETWebAPIを検討しています。

SQLではこれを行います:

WHERE order_date 
    BETWEEN to_date ('2003/01/01', 'yyyy/mm/dd') 
    AND to_date ('2003/12/31', 'yyyy/mm/dd');

...これらのタイプのコマンドは、ODATAプロトコルURLでどのように変換されますか?

4

3 に答える 3

13

Visual Studio 2012.2の更新により、ODataのサポートが復活し、日付のフィルタリングに次のURLが機能します。

http://host/api/controller?$filter=order_date+gt+datetime'2003-01-01'+and+order_date+lt+datetime'2003-12-31'

時刻を含める場合は、ISO8601形式で日付を指定する必要があります。

于 2013-05-29T09:03:08.793 に答える
2

WCF Data ServicesクライアントAPIを使用すると、LINQ句を使用して日付制約を表現できます。例:context.Orders.Where(o => o.OrderDate <DateTime.Now && o.OrderDate> DateTime.Now.AddDays( -7))。そのLINQクエリから生成されたURLには、$ filterオプションなどのクエリパラメータが表示されます。例:http://services.odata.org/(S(readwrite))/ OData / OData.svc / Products( )?$ filter =(ReleaseDate lt datetime '2012-06-19T08:16:01.4283521-07:00')および(ReleaseDate gt datetime '2012-06-26T08:16:01.4293524-07:00')LINQPadは、LINQに精通している場合にそれらのURLがどのように表示されるかを確認するための優れた方法です。

于 2012-06-19T15:18:25.867 に答える
0

ASP.NET Web APIでのODataサポートはなくなりQueryableAttribute、RTMではサポートされなくなります(少なくとも現時点ではそのように思われます)。

このコミットを確認してください:QueryAttributeと関連するクエリ構成機能を削除しました

彼らはまた、コミットメッセージとしてこの行を追加しました:

ODataライブラリに基づく個別の機能として、はるかに優れたODataサポートを提供する予定です。

あなたの質問に対する完全な答えではありませんが、それが役立つことを願っています。

于 2012-06-20T12:41:13.147 に答える