在商机实体中使用 "Name" 查询查找 属性 属性 - Dynamics CRM Online
Querying Lookup Property Attribute with "Name" in Opportunity Entity - Dynamics CRM Online
我在连接到动态 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);
现在由于名称是字符串类型,我可以添加条件并执行操作并获取结果。
我的要求是我必须添加另一个过滤器,它是一个查找 属性 "parentaccountid".
我正在尝试添加如下条件,但它 抛出强制转换异常错误,因为它只需要 GUID。
query.Criteria.AddCondition("parentaccountid", ConditionOperator.Like, "%In%");
注意:parentaccountid的类型是Microsoft.Xrm.Sdk.EntityReference,我从早期结果中检索出来
原因是我们只能使用 GUID 为 parentaccountid 应用过滤器。
有什么方法可以根据"Name"而不是"Id"添加条件吗?
是的,只需在"parentaccountid"
的末尾添加"name"
:
query.Criteria.AddCondition("parentaccountidname", ConditionOperator.Like, "%In%");
您会注意到,如果您像这样创建高级查找:
然后下载 FetchXML,CRM 只是将 "name"
附加到查找属性名称的末尾:
<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false">
<entity name="opportunity">
<attribute name="name" />
<order attribute="name" descending="false" />
<filter type="and">
<condition attribute="parentaccountidname" operator="like" value="%In%" />
</filter>
</entity>
</fetch>
另一种解决方案是使用 LinkEntity
,并查询关联帐户的名称。
我在连接到动态 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);
现在由于名称是字符串类型,我可以添加条件并执行操作并获取结果。
我的要求是我必须添加另一个过滤器,它是一个查找 属性 "parentaccountid".
我正在尝试添加如下条件,但它 抛出强制转换异常错误,因为它只需要 GUID。
query.Criteria.AddCondition("parentaccountid", ConditionOperator.Like, "%In%");
注意:parentaccountid的类型是Microsoft.Xrm.Sdk.EntityReference,我从早期结果中检索出来
原因是我们只能使用 GUID 为 parentaccountid 应用过滤器。
有什么方法可以根据"Name"而不是"Id"添加条件吗?
是的,只需在"parentaccountid"
的末尾添加"name"
:
query.Criteria.AddCondition("parentaccountidname", ConditionOperator.Like, "%In%");
您会注意到,如果您像这样创建高级查找:
然后下载 FetchXML,CRM 只是将 "name"
附加到查找属性名称的末尾:
<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false">
<entity name="opportunity">
<attribute name="name" />
<order attribute="name" descending="false" />
<filter type="and">
<condition attribute="parentaccountidname" operator="like" value="%In%" />
</filter>
</entity>
</fetch>
另一种解决方案是使用 LinkEntity
,并查询关联帐户的名称。