我有一个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?
答案 0 :(得分:-1)
为此,您需要先检查该记录是否包含任何值。
如以下代码所示...... 考虑一下,你想为int sum赋值。
int sum = e.Attributes.Contains("alloc") ? (int)((AliasedValue)e["alloc"]).Value : 0;
上面的代码首先检查记录是否包含任何值,如果是,它将返回总和,否则它将返回0。
希望这会有所帮助。