Dynamics 365-为什么查到的Record的Id是Guid初始值

  通过代码查询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有值了

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值