Si hago:¿Por qué la suma de un conjunto vacío es nula?
int updateGamePlays = db.tblArcadeGames.Where(c => c.ParentGameID == GameID).Sum(c => c.Plays);
Si no hay registros se devuelven en esta consulta se lanza:
System.InvalidOperationException: El valor nulo no puede ser asignado a un miembro de con el tipo System.Int32 cuales es un tipo de valor que no admite nulos.
La única manera de conseguir que vuelva 0 es haciendo:
int updateGamePlays = db.tblArcadeGames.Where(c => c.ParentGameID == GameID).Sum(c => (int?)c.Plays) ?? 0;
En la base de datos c.Plays
es un int no anulable.
En la teoría de conjuntos, la suma de un conjunto vacío debe ser igual a 0
(ref). ¿Cómo es que en Linq-to-SQL decidieron devolverlo al null
?
Esto es más base de datos y menos teoría de conjuntos. ¿Cuál es la 'SUMA 'de una columna que admite nulos en SQL Server? – Marc
@Marc en la pregunta que enlazo a ninguna de las columnas en cuestión son nullable –
¿Sabe L2S dbml que para este conjunto de datos? Supongo que ese campo sería un 'int' y no un' int? 'Si es así. – Marc