質問: container.Parents.ByKey(1).GetValue(); container.LoadProperty(parent, "Child"); ``` しかし、 `LoadProperty`内部的に`http://example.com/Parent(1)/Child`リクエストを作成しているので、 `GetChild()`メソッドを記述しなければ呼び出しは失敗します。 > テンプレート '〜/ entityset / key / navigation'を使用して、ODataパスのアクションを選択するためのルーティング規則は見つかりませんでした。 > > 多くのナビゲーションプロパティを持つプロジェクトでは、すべてのゲッターメソッドを記述するために多くの作業が必要になります。単一のリレーションごとにゲッターを書くことなくナビゲーションプロパティをロードする方法はありますか? *編集:*私は`$expand`知っていることを明確にしておくべきですが、最初のリクエスト(それはLoadProperty()が行うこと、そしてすべての単一のリレーションに対してゲッターを必要とするもの)の後に、関連するエンティティを取得することが時々あります。
回答: ODataは、関連するエンティティのインライン展開をサポートします。クライアント側でこの問題を解決するには、次のように`ByKey`から返されたオブジェクトの`Expand`メソッドを`ByKey`します。 ``` var parent = container.Parents.ByKey(1).Expand(p => p.Child).GetValue(); ``` この呼び出しにより、次のようなHTTP要求が発生します。 ``` GET http://example.com/Parent(1)?$expand=Child ``` `Expand`への呼び出しをチェーンすることもできます。