Silverlight RIA Services DomainDataSource,AutoLoad和RefreshInterval之间的关系

时间:2010-12-02 14:29:32

标签: silverlight wcf-ria-services domaindatasource

我无法理解DomainDataSource.AutoLoad之间的关系 和DomainDataSource.RefreshInterval。

如果我为给定的DomainDataSource启用AutoLoad,则正在查询服务器 反复以极高的速度......这不是我想要的。

所以我将RefreshInterval设置为“00:00:10”(每隔10秒对吗?)然后将其设置为 数据根本没有加载。

如果我将AutoLoad设置为true,则RefreshInterval的值似乎不会影响任何内容。

然后是LoadDelay属性,似乎与AutoLoad有关, 但将此值设置为10秒不会减慢对服务器的重复查询速度。

它变得更糟,因为我正在尝试的应用程序是基于导航的应用程序 每次加载页面时,即使您在应用程序中转到其他页面,也会同时执行更多查询。

我肯定做错了什么,但我无法弄清楚是什么,因为我无法理解这些属性的具体细节。我阅读了MSDN文档,但是一次他们没有真正帮助。

我希望这不是一个模糊的问题。

1 个答案:

答案 0 :(得分:1)

MSDN揭示了一些亮点:

When AutoLoad is true, any property change affecting the load query
will automatically invoke a Load after the specified LoadDelay.
Examples of properties that impact the query are PageSize and
FilterOperator. Also, changes to dependency object collections, such as
FilterDescriptors and changes to the dependency properties on elements
contained in those collections, will affect the query and prompt
an automatic Load.

和RefreshInterval

When a non-zero TimeSpan is specified, a Load operation is automatically
invoked each time the interval elapses, as long as CanLoad is true. When
this property is set, a timer starts, regardless of the value of the
AutoLoad property or whether a Load has been executed previously

所以听起来像AutoLoad和RefreshInterval完全没有直接关系。要考虑的一件事是CanLoad属性,对于许多事情,它被设置为false。它可能是阻止您的RefreshInterval工作的原因。如果DomainContext中的任何实体具有挂起的更改,则CanLoad将设置为false,这可能会在您没有意识到的情况下发生。

DDS的真正专家是RIA服务团队的成员。他们比RIA Services forums更多地在这里闲逛,所以可能会有一个好主意。