2012-09-20 87 views
4

我有以下查询:Linq查询,如何检查空值并使用值0代替空值?

var ordersPlacedBeforeOneHourList = ordersPlacedBeforeOneHourAgo.Select(order => order.Promo.PercentOff * (double) order.TotalCost).ToList(); 

我的一些order.Promo.PercentOff为null。如何更改上面的行,以便如果order.Promo为空,它的行为就如同值为0

这个想法是,如果没有应用特定的促销,我将计算促销的成本为0 * order.TotalCost(它将始终为0),然后转到下一个值来计算orders.Promo可能不为空,并在下线。

+3

我认为有一种情况可以改变模式,并在数据库中使用'0'而不是'null'。 'null'是什么意思?你不知道要削减多少价格?很明显不是。 – Jon

+3

确实。向该列添加“NOT NULL DEFAULT 0”会是一个很大的改进。 – spender

+0

Order.Promo是一个虚拟的字段,通过实体框架通过id引用(Order.PromoId) - 我不知道如何使返回默认值为0。 – Ecnalyr

回答