は私が(ワット=>にODATAクエリ式に"$フィルタ"、 "アイテムID EQ 1"を変換したいLINQにODATAクエリがありますw.itemID == 1)
この操作の準備ができたライブラリはありますか?それ以外の場合は、DynamicLinqクラスとlinqKitを使用してコードを作成する必要があります。
は私が(ワット=>にODATAクエリ式に"$フィルタ"、 "アイテムID EQ 1"を変換したいLINQにODATAクエリがありますw.itemID == 1)
この操作の準備ができたライブラリはありますか?それ以外の場合は、DynamicLinqクラスとlinqKitを使用してコードを作成する必要があります。
私がインストールされ、次のNuGetパッケージにマイクロソフトWebAPIのを使用しています:
http://nuget.org/packages/Microsoft.Data.OData/
私のようなもの書くことができますhttp://nuget.org/packages/microsoft.aspnet.webapi.odata
:
using System.Web.Http;
using System.Web.Http.OData.Query;
// Some stuff left out
[Queryable]
public IQueryable<Item> Get(ODataQueryOptions<Item> query)
{
var items = query.ApplyTo(from item in context.Items select item);
return (IQueryable<Item>) items;
}
をその後、私はそれを呼び出すことができますjQuery Ajaxを使用しています(この例では、私はBackboneJSを使用することを好みます)。
$.ajax({ url: '/api/items', data: $.param({ '$filter': 'ID eq 1' }) });
これは、IDが1のアイテムのみを返します。これはあなたの後ろのものだと思いますか?
ITEMIDあなたは、私はおそらくRESTの原則に従い、作成してしまう取得しているオブジェクトの主なIDがある場合は、URLが1のIDとアイテムを取得するためのAPIは、次のようになります。
/api/items/1
そして、コレクションのアイテムの他のプロパティに基づいてクエリを実行していた場合にのみ、アイテムのコレクションに対してoDataクエリを使用するか、たとえば上位10個のレコードを取得する場合など、以下のようにします。
$.ajax({ url: '/api/items', data: $.param({ '$top': 10 }) });
あなたは、フィルタを適用するには、次のNuGetパッケージを使用することができます。 https://www.nuget.org/packages/Community.OData.Linq
コードサンプルは次のようになります。
現在サポートされているusing System.Linq;
using Community.OData.Linq;
// dataSet in this example - any IQuerable<T>
Sample[] filterResult = dataSet.OData().Filter("Id eq 2 or Name eq 'name3'").ToArray();
:V4形式のフィルタとORDERBY
query.ApplyTo私が探しているようです。モノでそれが必要です。ありがとうございました。 –