silverlight-4.0 - 过滤时RiaServices和 entityQuery.IncludeTotalCount的智能分页问题

  显示原文与译文双语对照的内容
0 0

我使用RiaServices来使用EntityQuery填充网格。

因为我的数据库有数百万行,所以我只想查询当前页面,但也要为分页目的带来总的行数。

示例:100行总计


entityQuery.Skip(0).Take(10);//for the first page
entityQuery.IncludeTotalCount = true;

这将给我带来 10行,而 loadOperation.TotalEntityCount = 100. 完美。

但是想象一下:

示例:100行总计


entityQuery.Where(p => Id> = 1 && p.Id <= 50).Skip(0).Take(10);//with filter now
entityQuery.IncludeTotalCount = true;

我需要 10行,而 loadOperation.TotalEntityCount = 100 ( 我需要 50 ) !

这里的问题是: 对于分页目的,我需要满足过滤器的实体总数,而不是全部。

有可能更改"includetotalcount"的查询,还是应该忘记TotalEntityCount并查询服务器2 次?

cheers,

André Carlucci

时间: 原作者:

0 0

通过去掉跳过/接受分页指令( 就像你所期望的) 并将unpaged查询传递给 protected 虚拟 DomainService.Count 方法,RIA服务处理总计数请求。 建议重写这里方法,设置断点以便验证是否将正确计数查询传递给服务。 如果使用 EF DomainService,计数的基实现将只做一个 query.Count() 。 所以事情应该像你期望的那样行为- 我不确定为什么它们不是。 你使用的DomainService类型?

...