Dynamics crm 如何使用web服务链接CRM 4.0查询中的实体,并从两者返回列?
我需要对CRM执行一个查询。它相当于SQL中的以下内容:Dynamics crm 如何使用web服务链接CRM 4.0查询中的实体,并从两者返回列?,dynamics-crm,dynamics-crm-4,Dynamics Crm,Dynamics Crm 4,我需要对CRM执行一个查询。它相当于SQL中的以下内容: SELECT A.*, B.* FROM Table1 A INNER JOIN Table2 B ON A.ID = B.ID 我创建了一个查询并添加了一个linkentity,如下所示: link.JoinOperator = JoinOperator.Inner; link.LinkFromEntityName = EntityName.new_Table1.ToString(); link.LinkFromAttributeNa
SELECT A.*, B.*
FROM Table1 A INNER JOIN Table2 B
ON A.ID = B.ID
我创建了一个查询并添加了一个linkentity,如下所示:
link.JoinOperator = JoinOperator.Inner;
link.LinkFromEntityName = EntityName.new_Table1.ToString();
link.LinkFromAttributeName = "new_Table1ID";
link.LinkToEntityName = EntityName.new_Table2.ToString();
link.LinkToAttributeName = "new_Table2ID";
query.LinkEntities = new LinkEntity[] { link };
但是,它只返回新表1中的列
有没有一种方法可以以这种方式链接并从两个实体返回列,而不必创建两个查询?QueryExpression不支持这种方法。您需要使用fetchxml 通过SDK中的“使用FetchXML”,您将得到如下结果:
<fetch mapping='logical'>
<entity name='account'>
<attribute name='accountid'/>
<attribute name='name'/>
<link-entity name='systemuser' to='owninguser'>
<filter type='and'>
<condition attribute='lastname' operator='ne' value='Cannon' />
</filter>
<attribute name='name' />
</link-entity>
</entity>
</fetch>
var res = from u in p.Linq()
join sr in p.Linq() on u.systemuserid.Value equals sr.systemuserid.Value
join r in p.Linq() on sr.roleid.Value equals r.roleid.Value
select new { u.fullname, r.name };
用于构建和测试FetchXML。这样,您可以预览结果XML。您也可以使用。检索systemusers角色的查询如下所示:
<fetch mapping='logical'>
<entity name='account'>
<attribute name='accountid'/>
<attribute name='name'/>
<link-entity name='systemuser' to='owninguser'>
<filter type='and'>
<condition attribute='lastname' operator='ne' value='Cannon' />
</filter>
<attribute name='name' />
</link-entity>
</entity>
</fetch>
var res = from u in p.Linq()
join sr in p.Linq() on u.systemuserid.Value equals sr.systemuserid.Value
join r in p.Linq() on sr.roleid.Value equals r.roleid.Value
select new { u.fullname, r.name };
这适用于正常和(使用CRMMetal)多对多关系。您可以观看网络广播