我只是想知道在Odata.svc提供商端,我们可以改变/编辑通过线路发送到odata客户端的数据。
e.g。在对客户实体进行检索时,我并不关心所有相关实体(对于我们的场景,超过20个,这会增加很多额外的数据),因此返回的实体还包括相关的实体地址: / p>
所以在这种情况下,我不希望链接引用发生。除了执行选择之外,还有其他方法吗?我希望我们可以拦截数据请求并删除这些关系,而不是发送改变后的原子数据。
由于
答案 0 :(得分:0)
如果您可以在客户端上执行此操作,则可以使用投影功能:$ select。通过这种方式,客户端只能询问它需要的属性,其余的将不包括在内(这也适用于导航属性)。 在服务器上,目前没有简单的方法,主要是因为它有效地改变了数据的形状,因此服务器返回的数据将不符合$ metadata端点中描述的模型,这可能会使客户端感到困惑。您可以拦截请求到服务器(取决于您的托管技术,WCF / ASP.NET或甚至IDataServiceHost),并在WCF数据服务处理之前将$ select添加到URL。
答案 1 :(得分:0)
我想我在这里回答了一个类似的问题oData WCF service - hide an element。 也许它可以帮助你。
基本上,您可以使用IgnoreProperties属性来完成此任务。