私がない場合:空のセットの合計がnullであるのはなぜですか?
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
でnull非許容intです。
セット理論では、空集合の合計は0
(ref)に等しくなければなりません。彼らはそれを返すようにLinq-to-SQLにどう入りましたかnull
?
これはデータベースの数が増え、理論の設定が不十分です。 SQL ServerのNULL可能な列の 'SUM'とは何ですか? – Marc
@Marc質問で問題の列にリンクしていませんNULL可能です –
L2S dbmlはこのデータセットに対してそれを認識していますか?もしそうなら、フィールドは 'int'ではなく' int'であると仮定します。 – Marc