C#ODATA,使用子实体展开N Level
我真的需要你的帮助来实现以下目标:
首先让我向您展示我的数据库数据模型:
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
这应该工作得很好:
URI = "mebs_schedule({0})?$expand=mebs_ingesta/mebs_videoitem,mebs_ingesta/mebs_ingestadetails,mebs_ingesta/mebs_channel/mebs_channeltuning"
我刚刚在最后添加了“/ mebs_channeltuning”。 请注意,您不需要明确地扩展mebs_channel,因为它将被扩展,因为它的子项被扩展(在更改之后)。
暂定的解决方案有很多问题。 一个是扩展需要前面的$符号(否则它不被识别为查询选项)。 其次是服务器通常只接受一个$ expand查询选项。 (而且。不是扩展的分隔符)。
没有办法扩展一切。 这是故意的,因为扩展使数据可能呈指数级增长,从而可能导致服务器和客户端上的问题。 客户必须明确要求每次扩展。