以下查询在首页上工作正常
<fetch count="10" no-lock="true" page="1">
<entity name="account">
<attribute name="accountid" />
<attribute name="name" />
<link-entity name="contact" from="parentcustomerid" to="accountid" link-type="outer" alias="contact">
<attribute name="contactid" />
<attribute name="fullname" />
<attribute name="jobtitle" />
<attribute name="emailaddress1" />
<attribute name="telephone1" />
<attribute name="donotbulkemail" />
<attribute name="donotphone" />
<attribute name="telephone3" />
<attribute name="mobilephone" />
<attribute name="statuscode" />
<attribute name="statecode" />
<order attribute="lastname" />
</link-entity>
</entity>
</fetch>
对第二页的相同查询仅给出一条记录
<fetch count="10" no-lock="true" page="2">
<entity name="account">
<attribute name="accountid" />
<attribute name="name" />
<link-entity name="contact" from="parentcustomerid" to="accountid" link-type="outer" alias="contact">
<attribute name="contactid" />
<attribute name="fullname" />
<attribute name="jobtitle" />
<attribute name="emailaddress1" />
<attribute name="telephone1" />
<attribute name="donotbulkemail" />
<attribute name="donotphone" />
<attribute name="telephone3" />
<attribute name="mobilephone" />
<attribute name="statuscode" />
<attribute name="statecode" />
<order attribute="lastname" />
</link-entity>
</entity>
</fetch>
不知道,第二个及以后的页面请求出了什么问题?
如果我从链接实体中删除了order attribute
,那么它工作正常。
答案 0 :(得分:0)
您使用的是分页Cookie吗?在这种情况下,如果每个帐户都返回了多行,那将是行不通的。
When not to use paging cookies
分页cookie取决于常见的情况,其中返回的每一行代表一个唯一的实体记录。那里 您可以使用链接实体构建的一些查询将提供 合并主要实体和相关实体的数据的行。 这将导致多个主要实体行引用 相同的主键值。如果您在此依靠分页Cookie 情况下您将获得不一致的结果。
我解决此问题的首选方法是“翻转”查询:与您的主要实体联系并改为链接到帐户(假设这对您来说是一个合适的查询)。您的查询将如下所示:
<fetch count="10" no-lock="true" page="1">
<entity name="contact">
<attribute name="contactid" />
<attribute name="fullname" />
<attribute name="jobtitle" />
<attribute name="emailaddress1" />
<attribute name="telephone1" />
<attribute name="donotbulkemail" />
<attribute name="donotphone" />
<attribute name="telephone3" />
<attribute name="mobilephone" />
<attribute name="statuscode" />
<attribute name="statecode" />
<order attribute="lastname" />
<link-entity name="account" from="accountid" to="parentcustomerid" link-type="outer" alias="account">
<attribute name="accountid" />
<attribute name="name" />
</link-entity>
</entity>
</fetch>