编辑 OData 服务发送的数据

发布于 2024-10-21 12:25:46 字数 243 浏览 3 评论 0原文

我只是想知道在 Odata.svc 提供商端我们可以更改/编辑通过线路发送到 odata 客户端的数据。

例如,在检索客户实体时,我不关心所有相关实体(对于我们的场景,有超过 20 个相关实体,这增加了线路上的大量额外数据),因此返回的实体还包括相关实体地址:

所以在这种情况下,我不希望出现链接引用。除了执行选择之外,还有其他方法可以做到这一点吗?我希望我们能够拦截数据请求并删除这些关系,然后发送更改后的原子数据。

谢谢

Im just wondering at the Odata.svc provider end we can change/edit the data being sent over the line to the odata client.

e.g. On retrieve on a customer entity I do not care about all the related entities (which for our scenario there is over 20 which adds up to a lot of extra data going across the line) so the returned entity also includes the related entity addresses:

So in this circumstance I dont want the link refs coming across. Is there a way of doing this other than performing a select? Im hoping we can intercept the data request and chop out these relations and than send the altered atom data.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

心凉 2024-10-28 12:25:46

如果您可以在客户端上执行此操作,则可以使用投影功能:$select。这样,客户端只能请求它需要的属性,而不会包含其余属性(这也适用于导航属性)。
在服务器上,目前没有简单的方法可以做到这一点,主要是因为它有效地改变了数据的形状,因此服务器返回的数据将不符合 $metadata 端点中描述的模型,这可能会让客户端感到困惑。您可以在请求到达服务器时拦截该请求(取决于您的托管技术、WCF/ASP.NET 甚至 IDataServiceHost),并在 WCF 数据服务处理该请求之前将 $select 添加到 URL。

If you can do this on the client, you can use the projections feature: $select. In that way the client can ask only for the properties which it needs and the rest won't be included (this applies to navigation properties as well).
On the server, there's currently no simple way of doing this, mainly because it effectively changes the shape of the data, and thus the data returned by the server would not conform to the model described in $metadata endpoint, which might confuse clients. You could intercept the request as it comes to the server (depends on your hosting technology, WCF/ASP.NET or maybe even IDataServiceHost) and add the $select to the URL before it gets processed by the WCF Data Services.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文