我有是伟大的工作LINQ的声明...其选择这儿的一部分是如果一个Sum()值返回Null使用0,目前它将转换为一个可为空的double?
select new
{
Net = (System.Double?)
((from m0 in MOVTOS
where m0.DocumentType == "NET" && m0.ClientCode == c.ClientCode
group m0 by new { 0.ClientCode } into g
select new
{
Expr1 = (System.Double)g.Sum(p => p.Amount)
}).First().Expr1)
};
现在,如果你发现我使用System.Double?
(可空双)截至乞讨铸造由于某些值在SUM上返回为NULL。
如果我改变它System.Double它失败,错误
空值不能被分配到与类型System.Double一个部件,其是一种非空值类型
所以我想要做的是返回SUM的值,但如果它是NULL,那么在那里输入一个0。
任何帮助非常感激
可能会导致异常'g.Sum(p => p.Amount)?? 0).First()'改为使用'g.Sum(p => p.Amount)?? 0).FirstOrDefault()' – 2010-11-18 12:25:26
@Saeed,是的,但我不想改变OP代码的含义 – 2010-11-18 12:59:41