1

私は本当に次のことを達成するためにあなたの助けが必要です:

まず、私のDBデータモデルを紹介します。

1- mebs_schedule=>mebs_ingesta
2- mebs_ingesta=>mebs_ingestadetails
3- mebs_ingesta=>mebs_videoitem
4- mebs_ingesta=>mebs_channel=>mebs_channeltuning

以下のURIを使用して、スケジュール参照を提供するためにこのツリーを取得できます。

mebs_schedule=>mebs_ingesta

mebs_ingesta=>mebs_ingestadetails

mebs_ingesta=>mebs_videoitem

mebs_ingesta=> mebs_channel

URI ="mebs_schedule({0})?$expand=mebs_ingesta/mebs_videoitem,mebs_ingesta/mebs_ingestadetails,mebs_ingesta/mebs_channel" ここで、mebs_channelの発生ごとに関連付けられたmebs_channeltuningコレクションも取得したいと思います。

私はこれをどのように達成するかを知るためにグーグルで時間を過ごしましたが、何もありません。

いくつかの暫定:

mebs_schedule(79)?$expand=mebs_ingesta&expand=mebs_videoitem,mebs_ingestadetails,mebs_channel&expand=mebs_channe.mebs_channeltuning

最後の質問は、インポートされたすべてのデータモデルを拡張する方法があります。

ご協力いただきありがとうございます。

環境:VS .NET 2010 / C#4.0

4

1 に答える 1

2

これは問題なく機能するはずです。

URI = "mebs_schedule({0})?$expand=mebs_ingesta/mebs_videoitem,mebs_ingesta/mebs_ingestadetails,mebs_ingesta/mebs_channel/mebs_channeltuning" 

最後に「/mebs_channeltuning」を追加しました。mebs_channelは、子が展開されるために展開されるため(変更後)、明示的に展開する必要はないことに注意してください。

暫定的な解決策には多くの問題があります。1つは、expandの前に$記号が必要なことです(そうでない場合、クエリオプションとして認識されません)。2つ目は、サーバーは通常1つの$expandクエリオプションのみを受け入れることです。(そして、それは拡張の区切り文字ではありません)。

すべてを拡張する方法はありません。拡張によりデータが指数関数的に増大する可能性があり、サーバーとクライアントの両方で問題が発生する可能性があるため、これは意図的なものです。クライアントは、すべての拡張を明示的に要求する必要があります。

于 2012-12-28T08:52:29.127 に答える