1

我有一个 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,则结果中不会返回该列!

IE

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

失败。这是“预期的”吗?如何确保在对空值求和时使用 0?

4

1 回答 1

-1

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

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

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

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

希望这可以帮助。

于 2013-01-30T18:44:09.767 回答