我正在使用FetchXml来查询CRM 4.0。我们有一个特殊情况需要在CRM实体之间进行复合连接。 FetchXml schema指示允许多个链接实体元素,并且它还指示可以将多个过滤器/条件元素添加到链接实体。我面临的问题是condition元素的value属性看起来不允许实体/列名。它期望一个明确声明的值。是否可以在Microsoft Dynamics CRM 4.0中使用FetchXml进行组合连接?
例如,FetchXml让您指定这样的:
<link-entity name='myentity' from='column1' to='column2'/>
...这确实的T-SQL相当于此:
JOIN myentity on column1 = column2
它可以让你指定此:
<link-entity name='myentity' from='column1' to='column2'>
<filter type='and'>
<condition attribute='column3' operator='eq' value='myvalue' />
</filter>
</link>
......这是T-SQL的等价物:
JOIN myentity on column1 = column2 AND column3 = 'myvalue'
FetchXml没有出现,然而,提供了这样一个等价的:
JOIN myentity on column1 = column2 AND column3 = column4
注意区别。 FetchXml提供了连接中的条件,但似乎提供了一个复合连接,也就是跨多个列的连接。
有没有人在网络空间能够使用CRM 4.0中的FetchXml进行复合连接?谢谢!
的更多信息:
我打猎使用FetchXml做到这一点的答案 - 不是SQL或QueryExpression语法。上面的SQL只是为了解释这个概念。
同意。在我发布这个问题后,我最终尝试了多个查询......并使用LINQ将两个结果集合到我所需要的中。幸运的是,LINQ *支持跨多列的连接! LINQ解决方案干净可读。 – WiregrassCoder 2010-11-02 11:57:30
哦,是吗?是使用新的高级开发人员扩展(Microsoft.Xrm.Client.sdk)和使用CrmSvcUtil.exe生成的类吗?不幸的是我们的解决方案有太多的自定义实体/关系(某些东西),我还没有能够切换到这个(超时)。据说他们将允许你在将来设置超时时间。 – 2010-11-02 18:34:05