3

DomainDataSource.AutoLoad と DomainDataSource.RefreshInterval の関係がわかりません。

特定の DomainDataSource に対して AutoLoad を有効にすると、サーバーは非常に高速で繰り返しクエリされます...これは私が望んでいるものではありません。

そのため、RefreshInterval を "00:00:10" (10 秒ごとですか?) に設定しましたが、データはまったく読み込まれません。

AutoLoad を true に設定すると、RefreshInterval の値は何にも影響を与えないようです。

そして、AutoLoad に関連しているように見える LoadDelay プロパティがありますが、これを 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は直接の関係がまったくないように聞こえます。考慮すべきことの1つは、CanLoadプロパティです。これは、多くの場合falseに設定されます。これが、RefreshIntervalが機能しない原因である可能性があります。DomainContext内のいずれかのエンティティに保留中の変更がある場合、CanLoadはfalseに設定されます。これは、気付かないうちに発生する可能性があります。

DDSの真の専門家は、RIAサービスチームのメンバーです。彼らはここよりもはるかに多くのRIAサービスフォーラムにたむろしているので、そこに尋ねることは良い考えかもしれません。

于 2010-12-02T14:43:31.860 に答える