c# - EF can't return the items with condition but sql can why? -
मेरे पास इस तरह की एक क्वेरी है:
int a = pgc.fronts.Where ( I = & gt; i.ItemCode == आइटमकोड & amp; i.PC == पीसी) .काउंट ()
पीजीसी मेरे डीबीकेनटेक्स्ट है। आइटम कोड '10414' और पीसी है मान null
परिणाम है 0
।
तो मैंने क्वेरी को sql कमांड में बदल दिया है:
/ * ***** SSMS से SelectTopNRows कमांड के लिए स्क्रिप्ट ****** / SELECT [आईडी], [नहीं], [आइटमकोड], [मात्राआरसीसी], [पीसी], [दिनांक], [प्रकार], [लाइन] , [संयुक्त], [QTYIssue], [Recivedby] FROM [pgc]। [डीबीओ]। [फॉरेन्ट्स] जहां आइटमकोड = '10414' और पीसी शून्य है
यह 3 रिकॉर्ड के रूप में देता है आप यहां देख सकते हैं:
इसलिए ऐसा क्यों होता है?
सार्वजनिक आंशिक कक्षा सामने {सार्वजनिक लंबे आईडी} (प्राप्त करें; सेट; } सार्वजनिक स्ट्रिंग नहीं {प्राप्त; सेट; } सार्वजनिक स्ट्रिंग ItemCode {get; सेट; } सार्वजनिक नल योग्य & lt; डबल & gt; मात्रारेखा {प्राप्त; सेट; } सार्वजनिक स्ट्रिंग पीसी {get; सेट; } सार्वजनिक प्रणाली। डेटटाइम तिथि {get; सेट; } सार्वजनिक स्ट्रिंग प्रकार {get; सेट; } सार्वजनिक स्ट्रिंग लाइन {get; सेट; } सार्वजनिक स्ट्रिंग संयुक्त {get; सेट; } सार्वजनिक डबल QTYIssue {get; सेट; } सार्वजनिक स्ट्रिंग Recivedby {get; सेट; }}
अगर मैं सही ढंग से याद रखता हूं (कम से कम Linq2Sql के लिए) यदि आप तुलना करना चाहते हैं शून्य मानों के साथ आप का उपयोग करना चाहिए:
int a = pgc.fronts.Where (i = & gt; i.ItemCode == आइटम कोड & amp; ऑब्जेक्ट। एक्लॉल्स् (i.PC, pc) ) .Count ();
यह "बग" इकाई फ़्रेमवर्क के बाद के संस्करणों में तय किया गया है। अभी के लिए आप इसका उपयोग कर सकते हैं:
int a = pgc.fronts.Where (i = & gt; i.ItemCode == आइटमकोड & amp; (i.PC == पीसी || (पीसी == नल और amp; i.PC == नल))। गणना ();
Comments
Post a Comment