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

Popular posts from this blog

apache - 504 Gateway Time-out The server didn't respond in time. How to fix it? -

c# - .net WebSocket: CloseOutputAsync vs CloseAsync -

c++ - How to properly scale qgroupbox title with stylesheet for high resolution display? -