c# ODATA,用子实体扩展N级
本文关键字:扩展 实体 ODATA | 更新日期: 2023-09-27 17:49:36
我真的需要你的帮助来实现以下目标:
首先让我展示一下我的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
最后一个问题有没有办法扩展所有导入的数据模型?
谢谢你的帮助。
Env: 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需要在它前面加$符号(否则它不会被识别为查询选项)。第二,服务器通常只接受一个$expand查询选项。(还有那个。不是展开项的分隔符)。
没有办法扩展一切。这是有意为之的,因为扩展可能会使数据呈指数级增长,从而可能在服务器和客户端上都造成问题。客户端必须明确地请求每个扩展