代码之家  ›  专栏  ›  技术社区  ›  ashveli

在Opportunity Entity-Dynamics CRM Online中查询“Name”为的查找属性[重复]

  •  0
  • ashveli  · 技术社区  · 7 年前

    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”。

    query.Criteria.AddCondition("parentaccountid", ConditionOperator.Like, "%In%");
    

    注意:parentaccountid的类型是Microsoft.Xrm.Sdk。当我从早期结果中检索时的实体引用

    有没有办法添加基于“Name”而不是“Id”的条件?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Dave Clark    7 年前

    是的,只需添加 "name" "parentaccountid" :

    query.Criteria.AddCondition("parentaccountidname", ConditionOperator.Like, "%In%");
    

    您会注意到,如果创建这样的高级查找:

    enter image description here

    然后下载FetchXML,CRM只是附加 “名称” 在查找属性名称的末尾:

    <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