2

我有一个带有 RIA 服务的 Silverlight 3 应用程序,我遇到了一个问题,即我的 DataPager 仅加载初始加载大小的数据,然后不再重新加载。它显示了两页数据(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 服务概述文档中给出的示例中看到,他们使用的是 LINQ to SQL 而不是 LINQ to EF - 两者之间肯定有所不同。

感谢您发布解决方法,为我节省了很多时间:)

于 2009-08-04T15:20:14.217 回答