2

RIAサービスを備えたSilverlight3アプリを使用していますが、DataPagerが初期ロードサイズのデータ​​のみをロードし、その後リロードしないという問題が発生しています。2ページのデータ(PageSize = 10、LoadSize = 20)が表示されます。119ページのデータが正しく表示されていますが、3ページに移動すると、データグリッドとデータフォームに何も表示されません。

これは私のドメインデータソースです:

<riaControls:DomainDataSource x:Name="_dds" QueryName="GetCaseLoads" AutoLoad="True" PageSize="10" LoadSize="20">
    <riaControls:DomainDataSource.DomainContext>
        <domain:FooContext />
    </riaControls:DomainDataSource.DomainContext>
</riaControls:DomainDataSource>

DataPagerのスニペットは次のとおりです。

<data:DataPager Source="{Binding Data, ElementName=_dds}" />

そして、これがドメインサービスクエリです:

[RequiresAuthentication()]
public IQueryable<CaseLoad> GetCaseLoads()
{
    // Return all case loads
    return this.Context.CaseLoadSet;
}

それはかなり簡単なので、何が欠けているのかわかりません。どんな助けでもいただければ幸いです。

4

2 に答える 2

3

これを機能させるために多くの時間を費やした後、私は最終的に問題を理解しました。これは、これに関する何らかの警告メッセージを受け取る必要があったため、RIAサービステクノロジのバグであると思います。

簡単な修正は、GetCaseLoads()によって返されるコレクションを注文することです。私はこのようにそれをしました、そしてそれは働きました:

[RequiresAuthentication()]
public IQueryable<CaseLoad> GetCaseLoads()
{
    // Return all case loads
    return this.Context.CaseLoadSet.OrderBy(caseLoad=>caseLoad.fkUserId);
}

この小さな問題を解決するのにどれだけの時間がかかったかは驚くべきことです。

于 2009-07-31T20:25:03.747 に答える
0

同じ問題が発生しました。RIAサービスの概要のドキュメントに記載されている例から、LINQtoEFではなくLINQtoSQLを使用していることがわかります。これは2つの違いがあるはずです。

回避策を投稿していただきありがとうございます。何時間も節約できました:)

于 2009-08-04T15:20:14.217 に答える