概述
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(); //获取地址
}
}
}
最后
以上就是单纯摩托为你收集整理的Dynamic CRM 之联合查询实体间的数据的全部内容,希望文章能够帮你解决Dynamic CRM 之联合查询实体间的数据所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复