简体   繁体   English

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

[英]Dynamics crm Query expression Email Entity with to attribute

Hi I was stuck on how to query from email entity filter by email address in to field. 嗨,我被困在如何通过电子邮件地址中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);
        }

By right, there is a record where to field contain agus@yahoo . 通过右键,有一个记录,其中to现场包含agus@yahoo But this method return zero records. 但是此方法返回零记录。

You should use ConditionOperator.Like along with % instead of ConditionOperator.Equal 您应该将ConditionOperator.Like%一起使用,而不是ConditionOperator.Equal

Read more 阅读更多

Update : 更新

I quickly did a query in XrmToolBox Fetchxml builder & copied the QueryExpression equivalent from there. 我很快在XrmToolBox Fetchxml构建器中进行了查询,并从那里复制了QueryExpression等效项。 Yes, you have to use activityparty and not activitypointer . 是的,您必须使用activityparty而不是activitypointer (not sure how your query didn't fail for column not found!?) (不知道您的查询如何不会因找不到列而失败!?)

// 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%");

For sake of completeness, here is the code.. 为了完整起见,下面是代码。

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);
    }

Thanks to @Arun 感谢@Arun

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Dynamics crm 查询表达式“联系人”不包含属性 - Dynamics crm Query expression "Contact" does not contain attribute 查找Dynamics CRM实体属性的依赖项 - Find dependencies for Dynamics CRM entity's attribute 查询表达式不同列Dynamics CRM 2011 - Query Expression Distinct column Dynamics CRM 2011 是否可以在不使用sql查询的情况下在Dynamics Crm中检索自定义实体的不同属性值的记录? - Is it possible to retrieve distinct attribute valued records of a custom entity in Dynamics Crm without using sql query? Microsoft Dynamics CRM-电子邮件实体检索数据-插件 - Microsoft Dynamics CRM - Email Entity Retrieve Data - Plug In 如何在Dynamics CRM中使用查询表达式提取插件dll - How to extract plugin dll using query expression in dynamics CRM Dynamics CRM查询针对两个链接实体的表达式过滤器或条件 - Dynamics CRM Query Expression filter or condition against two linked entities 外部 CRM 收入电子邮件 CRM Dynamics 365 - Outside CRM income email CRM Dynamics 365 LINQ to Dynamics CRM查询优化 - LINQ to Dynamics CRM query optimisation c#-动态CRM在线插件-使用字段值填充相关实体的属性 - c# - dynamics crm online plugin - use field value to populate attribute of related entity
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM