Почему сумма пустого множества равна нулю?

Если я это делаю:

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 ?

13
задан Edward Brey 12 January 2014 в 00:23
поделиться