मेरे पास निम्न कोड है। मुझे त्रुटि मिल रही है:मूल्य प्रकार '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."
जब क्रेडिट इतिहास तालिका में कोई रिकॉर्ड नहीं है।
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();
मैं शून्य मानों को स्वीकार करने के लिए क्वेरी को कैसे संशोधित कर सकता हूं?
धन्यवाद एंडर्स, DefaultIfEmpty (0) के साथ समाधान .um() मेरे लिए ठीक काम करता है। मैंने दूसरे समाधान (int?) के साथ भी कोशिश की है ... ?? 0 ..., लेकिन यह पहले जैसा ही अपवाद फेंकता है .. – zosim
आखिर में इसका परीक्षण करने और इसे समायोजित करने के लिए चारों ओर मिल गया, इसलिए अब दूसरा संस्करण भी काम करता है। –
Sum() और अन्य कुल फ़ंक्शन एक खाली डेटासेट पर लागू होने पर शून्य वापस आ जाएंगे। उनकी परिभाषा के विपरीत, हकीकत में वे अंतर्निहित प्रकार का एक संक्षिप्त संस्करण लौटाते हैं। – Suncat2000