9

Linq Expression があり、それを REST のクエリ文字列に変換したい、つまり

public IQueryable<Organisation> Organisations;

...
var organisations = Organisations.Where(x => x.Name == "Bob");

になる

http://restservice.com/Organisations?$filter=Name eq "Bob"
4

6 に答える 6

8

私は最終的にLinq2Rest ( NuGetも) で見つけましたが、これは法案に合っているようです。OAuth はサポートしていませんが、これを組み込むことは可能です。

于 2012-05-21T23:29:29.717 に答える
2

PocoHttpはまさにあなたが望むことを行うことができます。さらに、サービスの呼び出しを実行し、エンティティを逆シリアル化できます。

ODataProvider を簡単に変更して、追加の OData ネイティブ関数 (長さ、startwith など) をサポートすることもできます。

于 2012-07-28T14:40:37.403 に答える
2

OData ライブラリの初期のプレリリース バージョンにはクエリ文字列パーサーがありましたが、式の構築が完全に実装されることはなかったため、この機能は削除されました。ライブラリの大きな穴です。これがないと、ペイロードと一部のヘッダー サポートのみが残るからです。

幸いなことに、 Linq2Restは 1 行のコードで、必要なことを正確に実行します。

var organisations = Organisations.sources.Filter(Request.Params).OfType<Organisations>()

クエリ文字列がコレクションに対して選択し、異なる型のコレクションを生成する可能性があるため、キャストが必要です。プロパティのみを前提としている場合は、それについては気にしません。

于 2012-10-24T23:01:41.873 に答える
2

データソースを制御している場合、探しているのはODataです。

グーグルで検索すると、 HttpEntityClientが起動しましたが、経験はありませんが、便利に見えます。

率直に言って、フィルタリング、順序付けなどに関して、rest-apis は特定の標準に従う必要がないため、独自の実装を作成することもできると思います...

于 2012-05-16T08:23:04.240 に答える
0

大田を試す

オープン データ プロトコル (OData) は、データをクエリおよび更新するための Web プロトコルであり、データのロックを解除して、今日のアプリケーションに存在するサイロからデータを解放する方法を提供します。OData は、HTTP、Atom Publishing Protocol (AtomPub)、JSON などの Web テクノロジを適用および構築して、さまざまなアプリケーション、サービス、およびストアからの情報へのアクセスを提供することによってこれを行います。このプロトコルは、過去数年間にさまざまな製品に AtomPub クライアントとサーバーを実装した経験から生まれました。OData は、リレーショナル データベース、ファイル システム、コンテンツ管理システム、従来の Web サイトなど、さまざまなソースからの情報を公開およびアクセスするために使用されています。

EDIT 1: こちらもご覧ください: http://paulhammant.com/2012/02/13/client-side-mvc-frameworks-compared/

于 2012-05-16T08:23:18.747 に答える