2017-07-17 9 views
1

ルート要素に複数のNavigationPropertiesを持つODataサービスがあります。私はルートから結果を返さないクエリを実行したいとします。 ($top簡潔にするため削除年代およびメタデータ)

http://services.odata.org/V4/TripPinServiceRW/People?$ =友人を展開する($ =姓を選択)& $は= ヌル

が現状で

{ 
    "value": [{ 
     "Friends": [{ 
       "FirstName": "Scott" 
     }] 
    }] 
} 

を返すことができます選択、私はルートレベルで少なくとも1つの列を指定する必要がある$select、そうでない場合はすべてルートレベルの列が取得されます

(すなわち、 http://services.odata.org/V4/TripPinServiceRW/People?$ =友人を展開する($ =姓を選択)& $ =姓 を選択)

は、それが何らかの形で、空の$選択リストを指定することは可能ですか?私はABNFで明白な方法を見ることができません。

+0

私はこれが可能だとは思わないが、シナリオのよりよい考えを与えるために、データをどのように使用する予定ですか?友人がどの人に属しているのかわからない場合、その応答はなぜあなたにとって有用なのですか? – TomDoesCode

+0

私は動的データソースからODataを生成するコードを書いています(ユーザーは見たい列を選択します)。 空の$ selectを指定する方法がなくても、少なくとも1つの静的な列名を最上位レベルで知る必要があります。回避策は完全に可能ですが、odata仕様ではわずかな見落としのようでした。 –

答えて

1

ああ...見つけました!あなたがNavigationPropertyため$expandをお持ちの場合は

、あなたがそう、$selectとしてNavigationProperty名を使用することができます

http://services.odata.org/V4/TripPinServiceRW/People?$expand=Friends($select=FirstName)&$select=Friends

利回り*

{ 
    "value": [{ 
     "Friends": [{ 
      "FirstName": "Scott" 
     }] 
    }] 
} 

* $トップとメタデータが削除さ明瞭にするために