首页 > 解决方案 > 检查 SQL 查询是否返回 null

问题描述

我有个问题。我正在从数据库中获取某个列的总和。但是,在某些情况下,总和应该为 0 -> 如果没有符合条件的记录

在我看来:

<Label Content="{Binding Path=Sum, UpdateSourceTrigger=PropertyChanged}" />

在 ViewModel 我有:

public override void save()
{
    Sum = new Sum(ATMAEntites).Calculate(IdEvent, IdDealer, "Standing");      
}

在模型类中,我有:

public int? Calculate(int IdEvent, int IdDealer, string CategoryName)
{
    return (from wydaneSprzedawcy in ATMAEntites.WydaneSprzedawcy
            where wydaneSprzedawcy.Bilety.IdEvent == IdEvent &&
                  wydaneSprzedawcy.IdDealer == IdDealer &&
                  wydaneSprzedawcy.Bilety.CategoryName == CategoryName
            select wydaneSprzedawcy.quantity).Sum();
}

我想在模型中检查查询是否返回 null

标签: c#sqlentity-framework

解决方案


我假设 wydaneSprzedawcy.quantity 是 int 且不可为空。然后你可以尝试在选择中添加一个强制转换到 (int?) ,如下所示:

public int? Calculate(int IdEvent, int IdDealer, string CategoryName)
{
    return
        (
            from wydaneSprzedawcy in ATMAEntites.WydaneSprzedawcy
            where
                wydaneSprzedawcy.Bilety.IdEvent == IdEvent &&
                wydaneSprzedawcy.IdDealer == IdDealer &&
                wydaneSprzedawcy.Bilety.CategoryName == CategoryName
            select (int?)wydaneSprzedawcy.quantity
        ).Sum();
}

现在,如果查询没有返回记录,sum 应该返回 null。


推荐阅读