Linq以sql null值检查计算

时间:2017-12-02 17:06:12

标签: c# linq-to-sql

我有计算数量的函数。它工作正常但有些由于字段中的空值而没有返回任何内容。这些字段可以为null。我想只计算两个字段都不为空的位置。我想我需要使用foreach但我不知道如何在这里使用它的方式。 帮助赞赏

 private double Get_Quantity() 
    {
        try
        {
            double sum = 0;

            sum = (double)(from s in ManagerClass.oSqlData.table
                           where s.Demand.Order.Order_ID == Order_ID 
                           where s.Demand.Order.Order_Date >= ManagerClass.startDate && s.Demand.Order.Order_Date <= ManagerClass.EndDate

                           select s.ValueA - s.ValueB ).Sum();
            return sum;
        }
        catch
        {
            return 0;
        }
    }

1 个答案:

答案 0 :(得分:0)

试试这个;

        sum = (double)(from s in ManagerClass.oSqlData.table
            where (s.Demand != null && s.Demand.Order != null && s.Demand.Order.Order_ID == Order_ID)
            && (s.Demand != null && s.Demand.Order != null && s.Demand.Order.Order_Date >= ManagerClass.startDate && s.Demand.Order.Order_Date <= ManagerClass.EndDate)
                  && s.ValueA != null
                  && s.ValueB != null
            select s.ValueA - s.ValueB).DefaultIfEmpty(0).Sum();