ホームページ >バックエンド開発 >C#.Net チュートリアル >[转]WebApi OData を使用した複合キー

[转]WebApi OData を使用した複合キー

PHP中文网
PHP中文网オリジナル
2017-06-17 16:34:011457ブラウズ

本文转自:http://chris.eldredge.io/blog/2014/04/24/Composite-Keys/

基本的な構成では、エンティティが ID とバージョンで構成される複合キーを持っていることをモデル ビルダーに伝えました。

リーリー リーリー

OData フィードが次のような形式で個々のエンティティの edit and self リンクをレンダリングするには、これで十分です。 リーリー

しかし、この URL に移動すると、この 1 つのエンティティだけをキーで取得するのではなく、エンティティ セット全体が返されます。

正しい動作を取得するには、まず、キーによって個別のエンティティ インスタンスを取得する PackagesODataController をオーバーライドする必要があります:

リーリー
リーリー
ただし、キーは複数の値で構成されているため、そのままでは WebApi OData は複合キー パラメーターをこのようなアクションにバインドする方法を知りません。

括弧内の内容をルート データ マップにバインドする新しいルーティング規則を作成することで、これを修正できます。

リーリー
リーリー
このクラスは標準
を修飾し、URI の生のキー部分をキー/値のペアに分割し、それらをすべて RouteValues ディクショナリに追加します。

EntityRoutingConventionこれが完了すると、標準のアクション解決が開始され、呼び出す正しいアクション オーバーロードが見つかります。

このルーティング規則は、WebApi ODataCompositeKeySample プロジェクトから適応されました。

ここでは、WebApi OData と WCF Data Services のもう 1 つの違いを示します。 WCF Data Services では、フレームワークは

から単一のインスタンスを選択するクエリの生成を処理します。これにより、キーによるインスタンスの検索方法をカスタマイズする機能が制限されます。 WebApi OData では、キーによってエンティティ インスタンスを取得するオーバーロードを明示的に定義する必要があり、クエリの実行方法をより詳細に制御できるようになります。

IQueryableこの区別はほとんどのプロジェクトでは重要ではないかもしれませんが、NuGet.Lucene.Web の場合、ローカル フィードがオンザフライで別のサーバーからパッケージを取得し、ローカル フィードに追加できるミラー オン デマンド機能が有効になります。リポジトリに保存し、最初からそこに常に存在していたかのようにクライアントに送り返します。

これを WCF Data Services でカスタマイズするには、かなりのバックフリップが必要でした。

シリーズインデックス

はじめに
  1. 基本的なWebApi OData
  2. 複合キー
  3. デフォルトのストリーム

以上が[转]WebApi OData を使用した複合キーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。