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

具有to属性的Dynamics crm查询表达式电子邮件实体

  •  1
  • xChaax  · 技术社区  · 6 年前

    嗨,我被困在如何查询从电子邮件实体过滤器的电子邮件地址 to 现场。

    private static EntityCollection GetEmails(IOrganizationService service, string entityName, string emailaddress, ColumnSet cols)
            {
    
                QueryExpression query = new QueryExpression
                {
                    EntityName = "email",
                    Criteria = new FilterExpression
                    {
                        //FilterOperator = LogicalOperator.And,
                        Conditions = {
           new ConditionExpression {
            AttributeName = "statuscode",
             Operator = ConditionOperator.LessThan,
             Values = {
              1
             }
           }
          }
                    },
                    LinkEntities = {
          new LinkEntity {
           LinkFromEntityName = "activitypointer",
            LinkFromAttributeName = "activityid",
            LinkToEntityName = "activityparty",
            LinkToAttributeName = "activityid",
            LinkCriteria = new FilterExpression {
             FilterOperator = LogicalOperator.And,
              Conditions = {
               new ConditionExpression {
                AttributeName = "addressused",
                 Operator = ConditionOperator.Equal,
                 Values = {
                  "agus@yahoo"
                 }
               }
              }
            }
          }
         }
                };
                return service.RetrieveMultiple(query);
            }
    

    agus@yahoo . 但是这个方法返回零条记录。

    2 回复  |  直到 6 年前
        1
  •  1
  •   Arun Vinoth PrecogTechnologies    6 年前

    你应该使用 ConditionOperator.Like 随着 % 而不是 ConditionOperator.Equal

    Read more

    更新 :

    我在XrmToolBox Fetchxml builder&从那里复制了等效的QueryExpression。是的,你必须使用 activityparty 而不是 activitypointer . (不确定您的查询如何在未找到列时失败!?)

    // Instantiate QueryExpression QEemail
    var QEemail = new QueryExpression("email");
    QEemail.TopCount = 50;
    
    // Add columns to QEemail.ColumnSet
    QEemail.ColumnSet.AddColumns("activityid", "activitytypecode");
    
    // Define filter QEemail.Criteria
    QEemail.Criteria.AddCondition("activitytypecode", ConditionOperator.Equal, 4202);
    
    // Add link-entity QEemail_activityparty
    var QEemail_activityparty = QEemail.AddLink("activityparty", "activityid", "activityid");
    
    // Add columns to QEemail_activityparty.Columns
    QEemail_activityparty.Columns.AddColumns("addressused");
    
    // Define filter QEemail_activityparty.LinkCriteria
    QEemail_activityparty.LinkCriteria.AddCondition("addressused", ConditionOperator.Like, "%arunvinoth%");
    
        2
  •  1
  •   xChaax    6 年前

    private static EntityCollection GetEmails(IOrganizationService service, string entityName, ColumnSet cols)
        {
    
            QueryExpression query = new QueryExpression
            {
                EntityName = "email",
                Criteria = new FilterExpression
                {
                    //FilterOperator = LogicalOperator.And,
                    Conditions = {
                        new ConditionExpression {
                            AttributeName = "statuscode",
                            Operator = ConditionOperator.Equal,
                            Values = { 1 }
                        }
                    }
                },
                LinkEntities = {
                    new LinkEntity {
                        LinkFromEntityName = "email",
                        LinkFromAttributeName = "activityid",
                        LinkToEntityName = "activityparty",
                        LinkToAttributeName = "activityid",
                        LinkCriteria = new FilterExpression {
                            FilterOperator = LogicalOperator.And,
                            Conditions = {
                                new ConditionExpression {
                                    AttributeName = "addressused",
                                    Operator = ConditionOperator.Like,
                                    Values = { "%" + "agus@yahoo" + "%" }
                                }
                            }
                        }
                    }
                }
    
            };
            return service.RetrieveMultiple(query);
        }
    

    感谢@Arun

    推荐文章