Если я это делаю:
int updateGamePlays = db.tblArcadeGames.Where(c => c.ParentGameID == GameID).Sum(c => c.Plays);
Если в этом запросе не возвращаются записи, он генерирует:
System.InvalidOperationException: нулевое значение не может быть назначенным член с типом System.Int32, который является типом значения, не допускающим значения NULL.
Единственный способ заставить его вернуть 0 - это выполнить:
int updateGamePlays = db.tblArcadeGames.Where(c => c.ParentGameID == GameID).Sum(c => (int?)c.Plays) ?? 0;
В базе данных c.Plays
- это int, не допускающий обнуления.
В теории множеств сумма пустого множества должна быть равна 0
( ref ). Почему в Linq-to-SQL они решили вернуть null
?