字典

时间:2015-04-22 12:58:52

标签: dynamics-crm-2011

您好我正在尝试从CRM 2011中获取帐户。我正在获取EntityCollection中的数据。但是当我尝试从entityCollection读取或访问数据时,它显示第一条记录但在该记录之后抛出错误。请查看以下代码并建议我。

  string fetch2 = @"
                          <fetch version='1.0' output-format='xml-platform'      mapping='logical' distinct='false'>
      <entity name='account'>
      <attribute name='name' />
      <attribute name='address1_city' />
      <attribute name='primarycontactid' />
      <attribute name='telephone1' />
      <attribute name='accountid' />
      <order attribute='name' descending='false' />
      <filter type='and'>
         <condition attribute='accounttype' operator='eq' value='01' />
     </filter>
     </entity>
     </fetch>";

        try
        {
            EntityCollection fxResult = _service.RetrieveMultiple(new  FetchExpression(fetch2));
            foreach (var e in fxResult.Entities)
            {
                Console.WriteLine("Id:{0},Name:{1},City:{2}", e.Attributes  ["accountid"].ToString(), e.Attributes["name"].ToString(), e.Attributes["address1_city"].ToString());
               // Console.WriteLine("Id:{0},Name:{1},City:{2}", e.ToEntity["accountid"]);
            }
        }
        catch (Exception e)
        {
            Console.WriteLine("Error:==" + e.Message);
        }

1 个答案:

答案 0 :(得分:3)

在访问属性之前,您需要询问它是否在上下文中:

e.Attributes.Contains("address1_city")

如果集合包含该属性,则可以安全地访问它。

string accountid = (string)e.Attributes["address1_city"]

属性没有进入集合的原因是因为它是null或者你没有检索它。在这种情况下,您的某个属性可能为null。也许是address1_city。