Se faccio:Perché la somma di un set vuoto è nulla?
int updateGamePlays = db.tblArcadeGames.Where(c => c.ParentGameID == GameID).Sum(c => c.Plays);
Se non vengono restituiti record in questa query getta:
System.InvalidOperationException: il valore null non può essere assegnato a un membro con il tipo System.Int32 che è un tipo di valore non annullabile.
L'unico modo per farlo tornare 0 è facendo:
int updateGamePlays = db.tblArcadeGames.Where(c => c.ParentGameID == GameID).Sum(c => (int?)c.Plays) ?? 0;
Nel database c.Plays
è un int non annullabile.
In teoria dell'insieme la somma di un set vuoto deve essere uguale a 0
(ref). Come mai in Linq-to-SQL hanno deciso di farlo restituire null
?
Questo è più database e meno teoria degli insiemi. Qual è il 'SUM' di una colonna nullable in SQL Server? – Marc
@Marc nella domanda I link a nessuna delle colonne in questione sono annullabili –
Il dbml L2S sa che per questo set di dati? Assumerei che il campo sarebbe un 'int' e non un' int? 'Se è così. – Marc