2012-04-25 88 views
1

我目前正在使用Netflix OData API做一个小原型。我想总是热切地加载实体。换句话说,我不想特意“展开”属性。相反,我想只是在获取实体时加载给定实体的所有属性。这里我没有要求设计或建筑建议。我知道这样做的含义。有没有办法打开在上下文级别的急切加载?用OData急切加载

感谢

+0

据我所知,这是不可能的。我不是原来的讨论的一部分,但是如果有一个,它很可能集中于DoS是一种非常容易的服务。您可以使用URL重写将$ expand附加到所有查询中。 我还建议在https://data.uservoice.com/forums/72027-wcf-data-services-feature-suggestions添加功能请求,并让人们投票,如果你认为这很重要。 – 2012-04-25 15:49:00

回答

2

正如马克上面所指出的,这是目前不可能与任何内置的WCF数据服务的功能。您可以使用一些代码将$ expand注入到客户端的URL中,这样看起来您不需要明确地这样做。

一些通用的解决方案的问题是:

  • 开启此功能会发送大量的数据,即使应用程序可能不需要它。
  • 这应该分几层?只有一个,两个,或许多。它不可能是无限的,因为实体图中可能有周期。

你也可以修改你的客户端类来延迟加载访问属性。有一个API DataServiceContext.LoadProperty,所​​以只需在正确的位置调用它即可。

+0

我很害怕这种情况,但我明白为什么。我想这个DataServiceContext.LoadProperty或只是简单的.Expand(“实体/财产”),我需要急切加载。不理想,但它现在工作。 – Buzzer 2012-04-25 19:10:11