fields - linq sum group by c#
No obtiene excepción cuando la colección está vacía con el método Sum y Nhibernate (1)
Necesita convertir Value
en un tipo que admite nulos.
Por ejemplo, suponiendo que Value
es una propiedad int
:
var result = MyQueryable()
.Where(x => x.IsDone)
.Select(x => (int?)x.Value)
.Sum()
?? 0;
Como una Sum()
en un enumerable que se puede anular arrojará nulo para una fuente vacía, el operador de coalescencia ( ??
) se ocupará de devolver 0 cuando eso suceda.
Tengo un IQueryable
con NHibernate y me gustaría tener una consulta de linq para sumar una columna específica, pero cuando mi condición en el método Where
me da un resultado vacío, no quiero obtener una excepción, pero no me gustaría golpear. una consulta para obtener todos los registros y después de que se suman en la memoria, me gustaría algo como el comando coalese
sql, para la muestra:
// I get exception when its empty
var query = MyQueryable()
.Where(x => x.IsDone)
.Select(x => x.Value)
.Sum();
Tengo que hacer algo como esto:
// I get 0, its ok, but ToList(), list all records on memory,
// I just want to get a single value
var query = MyQueryable()
.Where(x => x.IsDone)
.Select(x => x.Value)
.ToList()
.Sum();
¿Hay alguna manera?
Gracias.