遇到空值时,FetchXML不返回聚合列

时间:2012-11-22 03:24:04

标签: dynamics-crm-2011 fetchxml

我有一个FetchXML查询,可以重新设置两个聚合列:

<fetch distinct='false' mapping='logical' aggregate='true'>
  <entity name='blocktrade'>
    <attribute name='sourceref' alias='trade_count' aggregate='count'/>
    <attribute name='allocationtradecount' alias='alloc' aggregate='sum'/>
    <attribute name='organisation' alias='org' groupby='true'/>
  </entity>
</fetch>

如果我限制查询返回在allocationtradecount中具有值的对象,则它按预期工作。但是,如果某些对象的allocationtradecount为null,则结果中不会返回该列!

(int)((AliasedValue)e["alloc_count"]).Value;

失败。这是'预期'吗?当空值总和时,如何确保使用0?

1 个答案:

答案 0 :(得分:-1)

为此,您需要先检查该记录是否包含任何值。

如以下代码所示...... 考虑一下,你想为int sum赋值。

int sum = e.Attributes.Contains("alloc") ? (int)((AliasedValue)e["alloc"]).Value : 0;

上面的代码首先检查记录是否包含任何值,如果是,它将返回总和,否则它将返回0。

希望这会有所帮助。