尽管在线阅读了大量可用资源,但我找不到明确的直接解释:
在什么情况下 和 的值PageingInfo.PageNumber
都PageingInfo.PagingCookie
需要赋值?
例如:假设我们有 10,000 条唯一记录,我们想检索所有记录,但一次检索 200 条记录。我们是否必须迭代PageNumber
(50 次迭代),还是仅使用PagingCookie
?
现在,我想分享一下我在在线资源上发现的内容:
首先,许多在线资源链接到官方 MSDN 示例(对于 FetchXML: 1 , 2,对于 QueryExpression: 1 , 2),但是对于这个问题没有直接的答案。他们都遍历PageNumber
,但据我了解(可能是错误的),一个 Page总是有 5000 条记录(或者是吗?)。
其次,我发现了这个使用的演示,从 40 条记录PagingCookie
中提取6-10 条记录:
<fetch mapping="logical" count="5" page="2" paging-cookie="<cookie page="1"><new_parentrecordid last="{F8DAB1AA-3A0F-E411-8189-005056B20097}" first="{F8DAB1AA-3A0F-E411-8189-005056B20097}" /></cookie>" version="1.0">
<entity name="new_parentrecord">
<attribute name="new_name" />
<link-entity name="new_childrecord" from="new_parentaid" to="new_parentrecordid">
<attribute name="new_childrecordid" />
<attribute name="new_name" />
</link-entity>
</entity>
</fetch>
然后,说明上面的内容被翻译成下面的 SQL 查询:
select top 6 "new_parentrecord0".new_name as "new_name"
, "new_parentrecord0".new_parentrecordId as "new_parentrecordid"
, "new_childrecord1".new_childrecordId as "new_childrecord1.new_childrecordid"
, "new_childrecord1".new_name as "new_childrecord1.new_name"
from
new_parentrecord as "new_parentrecord0"
join new_childrecord as "new_childrecord1" on ("new_parentrecord0".new_parentrecordId = "new_childrecord1".new_ParentAId)
where
((("new_parentrecord0".new_parentrecordId > '01DBB1AA-3A0F-E411-8189-005056B20097')))
order by
"new_parentrecord0".new_parentrecordId asc
因此,正如我在此示例中看到的那样,不需要使用页码,因为在 SQL 查询中只使用了分页 cookie。
对这个问题有一个很好的澄清会很棒。