概述
通过代码查询CRM数据,这个是开发经常会碰到的情况,获取返回的EntityCollection之后,我们会拿Entity.Id做进一步操作。笔者最近碰到的情况,是Entity.Id是个初始值。先上一段FetchXml:
private string FetchAccountFromContact = "<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='true'>" + "<entity name='account'>" + "<attribute name='name' />" + "<attribute name='new_bdrassigned' />" + "<attribute name='ownerid' />" + "<order attribute='name' descending='false' />" + "<link-entity name='contact' from='parentcustomerid' to='accountid' link-type='inner' alias='ac'>" + "<filter type='and'>" + "<condition attribute='contactid' operator='eq' value='{0}' />" + "</filter>" + "</link-entity>" + "</entity>" + "</fetch>";
查询Code:
FetchAccountFromContact = string.Format(FetchAccountFromContact, contactId); FetchExpression expression = new FetchExpression(FetchAccountFromContact); EntityCollection accounts = service.RetrieveMultiple(expression);
这套查询操作,初看没什么问题,但是当用最后的accounts,来做进一步的处理的时候,问题来了:
Id是Guid的初始值,并不是我们期望的真正的Record的Id。
问题原因:
在FetchXml那里,我们还需要加一个attribute,就是accountid。
private string FetchAccountFromContact = "<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='true'>" + "<entity name='account'>" + "<attribute name='name' />" + "<attribute name='accountid' />" + "<attribute name='new_bdrassigned' />" + "<attribute name='ownerid' />" + "<order attribute='name' descending='false' />" + "<link-entity name='contact' from='parentcustomerid' to='accountid' link-type='inner' alias='ac'>" + "<filter type='and'>" + "<condition attribute='contactid' operator='eq' value='{0}' />" + "</filter>" + "</link-entity>" + "</entity>" + "</fetch>";
然后再次查询就会发现Id有值了
最后
以上就是朴素柚子为你收集整理的Dynamics 365-为什么查到的Record的Id是Guid初始值的全部内容,希望文章能够帮你解决Dynamics 365-为什么查到的Record的Id是Guid初始值所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复