您好我正在尝试从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);
}
答案 0 :(得分:3)
在访问属性之前,您需要询问它是否在上下文中:
e.Attributes.Contains("address1_city")
如果集合包含该属性,则可以安全地访问它。
string accountid = (string)e.Attributes["address1_city"]
属性没有进入集合的原因是因为它是null或者你没有检索它。在这种情况下,您的某个属性可能为null。也许是address1_city。