Dynamics crm 查询表达式 Email Entity with to 属性

我被困在如何通过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);

        }

右边有一条记录,其中to字段包含agus@yahoo. 但是此方法返回零记录。


江户川乱折腾
浏览 238回答 2
2回答

交互式爱情

您应该使用ConditionOperator.Likewith%而不是ConditionOperator.Equal更新:我很快在 XrmToolBox Fetchxml builder 中进行了查询,并从那里复制了等效的 QueryExpression。是的,你必须使用activityparty而不是activitypointer. (不确定您的查询如何因未找到列而失败!?)// Instantiate QueryExpression QEemailvar QEemail = new QueryExpression("email");QEemail.TopCount = 50;// Add columns to QEemail.ColumnSetQEemail.ColumnSet.AddColumns("activityid", "activitytypecode");// Define filter QEemail.CriteriaQEemail.Criteria.AddCondition("activitytypecode", ConditionOperator.Equal, 4202);// Add link-entity QEemail_activitypartyvar QEemail_activityparty = QEemail.AddLink("activityparty", "activityid", "activityid");// Add columns to QEemail_activityparty.ColumnsQEemail_activityparty.Columns.AddColumns("addressused");// Define filter QEemail_activityparty.LinkCriteriaQEemail_activityparty.LinkCriteria.AddCondition("addressused", ConditionOperator.Like, "%arunvinoth%");

MMMHUHU

为了完整起见,这里是代码..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);    }
打开App,查看更多内容
随时随地看视频慕课网APP