1

OnStartProcessingRequest() メソッドで着信 OData Get Request をインターセプトするときにエンティティ (テーブル) 名を取得するにはどうすればよいですか? 例: 次の oData URI からエンティティ名として MusicCollection と Genre を取得したい

http://dataserver.com/service.svc/MusicCollection[SomeSong]/Genre

4

1 に答える 1

1

これは OdataUriParser の完璧な使い方です! 私たちが話しているように、それはアクティブでインクリメンタルな開発中であり、フィルターパーサーとオーダーバイパーサーが現在利用可能であり、開発が完了するとさらに多くのパーサーが提供される予定です. 特定のシナリオを処理するパーサーの一部はまだリリースされていませんが (まだ開発中です)、その間に使用できる実験的なバージョン (公式バージョンのベース) があります。http://nuget.org/packages/Microsoft.Data.OData.Contribの OData contrib ライブラリをご覧ください。具体的には、次のようなものです。

  Uri requestUri  = new Uri("http://dataserver.com/service.svc/MusicCollection(SomeSong)/Genre");
  Uri baseUri = new Uri("http://dataserver.com/service.svc/")
  SyntacticTree parsedUri = SyntacticTree.ParseUri(requestUri, baseUri);

結果の SyntacticTree では、URI が QueryToken に分解されます。ツリーをたどって、探しているパスを見つけてください。

于 2013-03-01T18:23:48.523 に答える