Dynamics crm 使用“查询”查询查找属性属性;名称“;在Opportunity实体中-Dynamics CRM Online

Dynamics crm 使用“查询”查询查找属性属性;名称“;在Opportunity实体中-Dynamics CRM Online,dynamics-crm,crm,Dynamics Crm,Crm,我在连接到dynamics CRM后检索结果,如下所示: CrmServiceClient crmConn = new CrmServiceClient(ConfigurationManager.ConnectionStrings["default"].ConnectionString); IOrganizationService crmService = crmConn.OrganizationServiceProxy; QueryExpression query = new QueryEx

我在连接到dynamics CRM后检索结果,如下所示:

CrmServiceClient crmConn = new CrmServiceClient(ConfigurationManager.ConnectionStrings["default"].ConnectionString);
IOrganizationService crmService = crmConn.OrganizationServiceProxy;

QueryExpression query = new QueryExpression("opportunity");    
query.Criteria = new FilterExpression();
query.Criteria.AddCondition("name", ConditionOperator.Like, "14%");

EntityCollection results = crmService.RetrieveMultiple(query);
现在,由于名称是string类型,我能够添加条件并执行操作并获得结果

我的要求是我必须添加另一个过滤器,它是一个查找属性“parentaccountid”

我试图添加如下条件,但它抛出强制转换异常错误,因为它只需要GUID。

query.Criteria.AddCondition("parentaccountid", ConditionOperator.Like, "%In%");
注意:当我从早期结果检索时,parentaccountid的类型是Microsoft.Xrm.Sdk.EntityReference

原因是我们只能对具有GUID的parentaccountid应用筛选器

是否有任何方法可以添加基于“名称”而不是“Id”的条件?

是的,只需将
“名称”
添加到
“parentaccountid”
的末尾:

query.Criteria.AddCondition(“parentaccountidname”,ConditionOperator.Like,“%In%”);
您会注意到,如果创建这样的高级查找:

然后下载FetchXML,CRM只需在查找属性名称的末尾添加
“name”


另一种解决方案是使用
链接实体
,并查询链接帐户的名称。

是的,只需在
“parentaccountid”
的末尾添加
“name”

query.Criteria.AddCondition(“parentaccountidname”,ConditionOperator.Like,“%In%”);
您会注意到,如果创建这样的高级查找:

然后下载FetchXML,CRM只需在查找属性名称的末尾添加
“name”



另一种解决方案是使用
链接实体
,并查询链接帐户的名称。

我尝试使用链接实体,但未能实现所需的功能。然而,@Dave Clark提供了我一直在寻找的确切答案。谢谢Dave。我尝试了LinkEntities,但未能实现所需的功能。然而,@Dave Clark提供了我一直在寻找的确切答案。谢谢,戴夫,谢谢,戴夫,这很有效。但我尝试使用LinkEntity进行查询,但无法找到此属性“parentaccountid”的实体。所以,我不能加入Opportunity实体。基本上,parentaccountid是一个查找字段。如何在查找字段上使用LinkEntity?你能用这个扩展你的答案吗?嗨,阿什维利,很高兴我能帮上忙。我认为要回答你的扩展问题,你需要问一个新问题(根据SO的指导方针)。说了这么多博客帖子,甚至微软官方帖子,我搜索了很多文章,但我找不到如何使用lookup属性查询linkentity。我所能找到的只是通过实体查询linkentity,就像我能够查询opportunity&account一样。但是,在你提供方法之前,我没有运气。再次感谢你。我认为使用linkentity和lookup属性进行查询是不可能的。但我尝试使用LinkEntity进行查询,但无法找到此属性“parentaccountid”的实体。所以,我不能加入Opportunity实体。基本上,parentaccountid是一个查找字段。如何在查找字段上使用LinkEntity?你能用这个扩展你的答案吗?嗨,阿什维利,很高兴我能帮上忙。我认为要回答你的扩展问题,你需要问一个新问题(根据SO的指导方针)。说了这么多博客帖子,甚至微软官方帖子,我搜索了很多文章,但我找不到如何使用lookup属性查询linkentity。我所能找到的只是通过实体查询linkentity,就像我能够查询opportunity&account一样。但是,在你提供方法之前,我没有运气。再次感谢你。我认为使用linkentity和lookup属性进行查询是不可能的