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

c# ODATA,用子实体扩展N级

这应该可以正常工作:

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查询选项。(还有那个。不是展开项的分隔符)。

没有办法扩展一切。这是有意为之的,因为扩展可能会使数据呈指数级增长,从而可能在服务器和客户端上都造成问题。客户端必须明确地请求每个扩展