【发布时间】:2019-02-22 09:12:26
【问题描述】:
有许多帖子用于查找“未加入”以查找与记录类型 b 没有关联的类型 a 的记录。
我想在我的场景中扩展它,我有一个数据库记录类型和一个服务器升级记录类型,它们之间有一个 N:N。 (数据库和服务器之间有一个 N:N,但这不是此查询的一部分)
我想查找尚未链接到我正在处理的特定服务器升级的所有数据库记录。我的尝试失败了,因为数据库可以链接到其他服务器升级记录
<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="true" >
<entity name="dsg_databases" >
<attribute name="dsg_databasesid" />
<filter type="and" >
<condition entityname="ae" attribute="dsg_serverupgradeid" operator="neq" value="25dbe565-f435-e911-a976-000d3a2bcd97" />
</filter>
<link-entity name="dsg_dsg_serverupgrade_dsg_databases" from="dsg_databasesid" to="dsg_databasesid" link-type="outer" intersect="true" >
<link-entity name="dsg_serverupgrade" from="dsg_serverupgradeid" to="dsg_serverupgradeid" link-type="outer" alias="ae" />
</link-entity>
</entity>
</fetch>
原因是,在插件中,我将这些数据库与服务器升级记录相关联,但如果它们已经链接,则会收到错误 Cannot insert duplicate key。
作为参考,如果有更好的方法,我将 FetchXML 返回的实体集合转换为 EntityReferenceCollection ercDatabases 并使用 service.Associate(targetEntity.LogicalName, targetEntity.Id, relationship, ercDatabases);
编辑 - 我试图避免循环遍历返回的每条数据库记录并检查它们是否关联。我宁愿在单个查询中执行此操作以提高性能。
【问题讨论】:
标签: dynamics-crm fetchxml notin