मेरे पास एक linq क्वेरी है:
var capacityQuery = mySQLDataTable.AsEnumerable में जानकारी से ( ) जहां जानकारी। फ़ील्ड & lt; ऑब्जेक्ट & gt; ("स्थान") == स्थान.आईडी ऑर्डर की जानकारी। फ़ील्ड & lt; दिनांकटाइम & gt; ("तारीख")
जहां "info.Field (" स्थान ") == स्थान.आईडी" जहां मुझे समस्या हो रही है
मेरा प्रश्न है
संदर्भ के लिए नीचे दिया गया है:
स्थान एक कस्टम वर्ग है I आईडी एक ऑब्जेक्ट देता है।
निजी इंट? addressID; सार्वजनिक वस्तु आईडी {प्राप्त करें (यदि (पता आईडी == रिक्त) रिटर्न DBNull.Value; दूसरा वापसी पता आईडी; }}
इसका कारण डीबीब्लूल होना है क्योंकि यह एक डेटाबेस से आ रहा है "टेबल" भी एक डेटाबेस से भरा जा रहा है।
मुझे पता है == इस मामले में गलत है क्योंकि इसकी तुलना संदर्भों की तुलना गलत है।
मुझे पता है वस्तु बराबर (var1, var2) काम करना चाहिए, लेकिन ऐसा नहीं है जो अनुमान लगाते हैं क्योंकि वे 2 अलग-अलग ऑब्जेक्ट हैं।
मान दोनों पक्षों और वर्ग की तरफ एक int या DBNull हो सकते हैं।
यह एक अग्रविकल्प लूप में है, इसलिए मैं उसी क्वेरी का उपयोग करता हूं जहां स्थान के पास एक पूर्णांक मान होता है या जब उसका डीएनबीबल मान होता है।
फिर मेरा प्रश्न है मैं कहां कथन में एक तुलना कैसे करूं, जो कि या तो किसी DBNull.Value या किसी भी ओर एक इंट मान हो सकता है
का प्रयोग करें
<प्री> निजी इंट? addressID; सार्वजनिक ऑब्जेक्ट आईडी {प्राप्त करें return addressID.HasValue? पता आईडी। वस्तु के रूप में मूल्य: DBNull.Value; }}
इसके बजाय। इस तरह, यदि पता आईडी प्रारंभ नहीं किया गया है या यदि यह जानबूझकर रद्द करने के लिए सेट किया गया है, तो ID संपत्ति एक DBNull.Value लौटाएगी। अन्यथा, यह एक पूर्णांक लौटाएगा, लेकिन आपको इसे ऑब्जेक्ट से int या int में डालना होगा?
यह कहने के बाद, अशक्त की रचना लेखक द्वारा "एक अरब डॉलर की गलती" कहा गया है, लेकिन अब तक मुझे लगता है कि यह अरबों में है। आपको एक इंटर्न देना चाहिए? डेटाबेस से डेटाटाइप यदि आप कर सकते हैं, तो इस मामले में, तुलना हमेशा काम करेगी। मुझे यकीन नहीं है कि आप किस ORM का इस्तेमाल करते हैं, लेकिन डापर और लिनक 2 डीबी इस परिदृश्य को सही ढंग से इस तरह से संभालते हैं जैसे कि मुझे पता है।
Comments
Post a Comment