0

サーバーでページングされた OData の結果を使用したいと考えています。

つまり、JSON コードには要素が含まれています。

"__next": "http://server/odata.svc/table?$skiptoken=guid'4dda1cd9-7eff-423f-a314-08edf26a22e8'"

ASP.NET MVC でこれを行うにはどうすればよいですか? OData を使用する例はかなりありますが、ページ化されたデータを処理する例はありません。

私は OData と MVC の両方にまったく慣れていないので、回答をできるだけ明確にしてください。;-)

4

2 に答える 2

1

.NET で OData を使用する主な方法は、WCF Data Services クライアント ライブラリを使用することです。Visual Studio では、プロジェクトを右クリックし、[サービス参照の追加] を選択して開始できます。その「サービス参照の追加」は、内部で WCF Data Services クライアント ライブラリを使用します。クライアント ライブラリの使用方法に関する一般的な情報については、MSDN のドキュメント ( http://msdn.microsoft.com/en-us/library/cc668772.aspx ) を参照してください。

ただし、注意してください: 投稿した JSON ( "__next") は古い OData JSON 形式であり、「Verbose JSON」と呼ばれることもあります。WCF Data Services クライアントは、この形式をサポートしていません。Atom と新しい JSON 形式のみをサポートします。サーバーが Atom または新しい v3 JSON のいずれかをサポートできる限り、問題にはなりません。

実際の質問に関しては、オブジェクトで.GetContinuation()メソッドを使用できます。QueryOperationResponse例えば:

// "DemoService" is the auto-generated subclass of DataServiceContext created when you run "Add Service Reference"
DemoService context = new DemoService(new Uri(<url to the service root>));
var firstPage = context.Customers.Execute() as QueryOperationResponse<Customer>;
var token = firstPage.GetContinuation();
if (token != null)
    var secondPage = context.Execute<Customer>(token);

明らかに、これをループに変えたいと思うでしょうが、これで API の使い方の基本的な考え方が得られるはずです。詳細については、MSDN の次のページを参照してください: http://msdn.microsoft.com/en-us/library/ee358711.aspx

于 2013-06-13T17:49:22.843 に答える