Linq to Entities

时间:2011-05-12 01:35:34

标签: linq entity-framework

如何摆脱“If then else”?

  If qShoppingCartByCartID.Invoke(_context).Count > 0 Then
            Return qShoppingCartByCartID.Invoke(_context).Select(Function(x) x.Products.UnitCost - x.Products.SalePrice).Sum
        Else
            Return 0
        End If

1 个答案:

答案 0 :(得分:0)

如果列表为空,则Sum()将返回null - 因此您可以返回总和:

  Return qShoppingCartByCartID.Invoke(_context).Select(Function(x) x.Products.UnitCost - x.Products.SalePrice).Sum()

在C#中你也可以使用??将其变为零而不是null如果你想

  return qShoppingCartByCartID....Sum() ?? 0;

我不是VB用户,但看起来你可以使用If在VB中执行相同的null操作 - 请参阅Is there a VB.NET equivalent for C#'s '??' operator?