3

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

如果我为给定的 DomainDataSource 启用 AutoLoad,服务器会以非常高的速率重复查询......这不是我想要的。

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

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

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

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

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

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

4

1 回答 1

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 服务论坛上闲逛,所以询问可能是个好主意。

于 2010-12-02T14:43:31.860 回答