次のコードがあります。私はエラーが発生しています:実体化された値がnullであるため、値型 'Int32'へのキャストが失敗しました
"The cast to value type 'Int32' failed because the materialized value is null. Either the result type's generic parameter or the query must use a nullable type."
CreditHistoryテーブルにレコードがない場合。
var creditsSum = (from u in context.User
join ch in context.CreditHistory on u.ID equals ch.UserID
where u.ID == userID
select ch.Amount).Sum();
null値を受け入れるようにクエリを変更するにはどうすればよいですか?
Anders、DefaultIfEmpty(0).Sum()のソリューションは、私のためにうまく動作します。私はまた、(int?)で2番目のソリューションを試してみましたか? 0 ...しかし、前と同じ例外がスローされます。 – zosim
最後にこれをテストして調整したので、今度は2番目のバージョンも機能します。 –
空のデータセットに適用すると、Sum()やその他の集計関数はnullを返します。それらの定義とは対照的に、実際には、基になる型のnull可能なバージョンを返します。 – Suncat2000