Dynamics 365 v8.2。FetchXml。
每个 isv_entity1
记录可以与一个或多个 isv_entity2
记录(一比多)。我需要得到 只是 isv_entity1
的记录,其中 都 连接 isv_entity2
记录对应一些条件。如果至少有一条链接的 isv_entity2
记录不符合条件,则 isv_entity1
记录不应该落入选择范围。
如何通过FetchXml来实现?
如果我将使用这个查询。
<fetch distinct='true' >
<entity name='isv_entity1' >
<attribute name='isv_entity1id' />
<link-entity name='isv_entity2' from='isv_entity2id' to='isv_entity2id' >
<filter type='and' >
<condition attribute='isv_someProp' operator='eq' value='someValue' />
</filter>
</link-entity>
</entity>
</fetch>
那么我得到的是 isv_entity1
的记录,其中有 至少一个 连接 isv_entity2
对应的条件。但是和我需要的不一样。
你需要的是: 找到所有的父记录,其中所有的子记录都有一个给定的值(但不只是一些子记录)。
上面的内容相当于你的要求的sql,不幸的是FetchXML不支持子查询,所以你要么使用两个查询,要么查询所有记录,然后迭代验证过滤符合你条件的结果。
所以你必须使用两个查询,或者查询所有的记录,然后迭代验证过滤符合你条件的结果。