J'ai une déclaration LINQ qui travaille grande ... sa part select ici il estSi une valeur Sum() renvoie Null, utilisez 0 pour le convertir en double nullable?
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)
};
Maintenant, si vous remarquez que je utilise System.Double?
(annulable double) dans un plâtre à la mendicité en raison du fait que certaines valeurs sont renvoyées comme NULL sur la somme.
Si je change à System.Double il échoue avec l'erreur
La valeur nulle ne peut pas être affectée à un élément de type System.Double qui est une valeur non nulle de type
Donc, ce que je voudrais faire est de retourner la valeur de la somme, mais si elle est NULL, entrez un 0 là-dedans.
Toute aide vraiment apprécié
peut provoquer l'exception 'g.Sum (p => p.Amount) ?? 0) .First() 'utilise à la place' g.Sum (p => p.Amount) ?? 0) .FirstOrDefault() ' –
@Seed, oui, mais je ne voulais pas changer la signification du code OP –