Tôi có mã sau đây. Tôi gặp lỗi:Giá trị đúc thành loại giá trị 'Int32' không thành công do giá trị vật hoá là null
"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."
khi bảng Tín dụng không có hồ sơ.
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();
Làm cách nào để sửa đổi truy vấn để chấp nhận giá trị null?
cảm ơn Anders, giải pháp với DefaultIfEmpty (0) .Sum() hoạt động tốt cho tôi. Tôi cũng đã thử giải pháp thứ hai với (int?) ... ?? 0 ..., nhưng nó ném cùng một ngoại lệ như trước đây .. – zosim
Cuối cùng đã có xung quanh để kiểm tra điều này và điều chỉnh nó, vì vậy bây giờ phiên bản thứ hai hoạt động quá. –
Hàm Sum() và các hàm tổng hợp khác sẽ trả về giá trị rỗng khi được áp dụng cho tập dữ liệu trống. Trái ngược với định nghĩa của chúng, trên thực tế chúng trả về một phiên bản nullable của kiểu cơ bản. – Suncat2000