Nếu tôi làm:Tại sao tổng của một tập trống rỗng?
int updateGamePlays = db.tblArcadeGames.Where(c => c.ParentGameID == GameID).Sum(c => c.Plays);
Nếu không có hồ sơ được trả về trong truy vấn này nó ném:
System.InvalidOperationException: Các giá trị null không thể được gán cho thành viên với kiểu System.Int32 mà là một loại giá trị không nullable.
Cách duy nhất để làm cho nó trở về 0 là bằng cách làm:
int updateGamePlays = db.tblArcadeGames.Where(c => c.ParentGameID == GameID).Sum(c => (int?)c.Plays) ?? 0;
Trong cơ sở dữ liệu c.Plays
là một int nullable.
Trong lý thuyết tập hợp, tổng của một tập hợp rỗng phải bằng 0
(ref). Làm thế nào đến trong Linq-to-SQL họ đã quyết định để làm cho nó trở về null
?
Đây là cơ sở dữ liệu và lý thuyết tập hợp ít hơn. 'SUM' của cột rỗng trong SQL Server là gì? – Marc
@Marc trong câu hỏi tôi liên kết với không có cột nào được đề cập là không có giá trị –
L2S dbml có biết rằng đối với tập dữ liệu này không? Tôi sẽ giả sử rằng trường sẽ là một 'int' và không phải là một' int? 'Nếu như vậy. – Marc