Dynamic CRM 之联合查询实体间的数据

来源:互联网 发布:linux权限设置 编辑:程序博客网 时间:2024/05/21 17:14

1.CRM实体间有很多关联,比如“联系人”经常用到“客户”中的公司地址,所以写了一个联合查询,本人初接触CRM系统,望大家多多指教!

QueryExpression ContactExpression = new QueryExpression        {            EntityName = "contact", //查询的实体名称            ColumnSet = new ColumnSet(true),  //contact实体字段,true代表全部字段;            Criteria = new FilterExpression()        };        //根据parentcustomerid查询:联系人在account实体中的公司地址        ContactExpression.LinkEntities.Add(new LinkEntity("contact", "account", "parentcustomerid", "accountid", JoinOperator.Inner));        //account实体中公司地址字段        ContactExpression.LinkEntities[0].Columns.AddColumns("address1_line1");        //这里的temp相当于account实体的别名,获取数据通过该temp.address1_line1;        ContactExpression.LinkEntities[0].EntityAlias = "temp";        FilterExpression allchildFilder = new FilterExpression();        allchildFilder.FilterOperator = LogicalOperator.And;        ConditionExpression statecode = new ConditionExpression("statecode", ConditionOperator.Equal, 0);    //获取查询到数据的行数        allchildFilder.AddCondition(statecode);        allchildFilder.AddFilter(childFilder);        ContactExpression.Criteria = allchildFilder;        EntityCollection contactchildEntity = service.RetrieveMultiple(ContactExpression);        if (contactchildEntity.Entities.Count <= 0)            ReturnStr = "{\"status\":\"success\",\"result\":\"暂无数据\"}";        else        {            foreach (Entity s in contactchildEntity.Entities)            {                string address = string.Empty;                //获取account中的公司地址:判断account中的公司地址 属性是否为null或者""                if (s.Attributes.Keys.Contains("temp.address1_line1") != true)                {                    address = string.Empty;//设置默认值                }                else                {                    address = ((AliasedValue)s["temp.address1_line1"]).Value.ToString();       //获取地址                }            }        }


0 0