[ad_1]
मेरे पास डेटाबेस में दो टेबल हैं जिन्हें मैं संयोजित करना चाहता हूं और उस डेटा के साथ काम करना चाहता हूं।
इसलिए मैंने उस कोडनिपेट का उपयोग किया:
var listOfFoundRespIds = (from a in context.Adresses join e in context.ExtraData on a.LFD equals e.lfd where a.PROJID == 2048 select new { RESPID = e.str03, LFD = e.lfd, PROJID = a.PROJID }) .ToList();
डेटाबेस तालिका में स्वयं 31.966.037 प्रविष्टियाँ हैं।
डिबगिंग करते समय (सीधे कोड निष्पादन के बाद) मैंने iEnumeration Viewer शुरू किया और context.Adresses पर गौर किया और एक सीएसवी निर्यात किया। उस सूची में 995.101 प्रविष्टियाँ थीं। इसलिए निष्पादन के समय मेरे पास इसके साथ काम करने के लिए मुख्य तालिका से सभी प्रविष्टियाँ नहीं हैं।
शायद किसी के पास कोई विचार हो, कैसे ठीक किया जाए?
मैंने क्या प्रयास किया है:
आईएन्यूमरेशन व्यूअर और सीएसवी चेकआउट की जांच की गई
डेटाबेसटेबल को दोबारा जांचें
एंटिटी फ्रेमवर्क और अन्य SQL सामग्री के बारे में दस्तावेज़ पढ़ें।
समाधान 1
आप एक प्रदर्शन कर रहे हैं INNER JOIN
– आपको केवल इससे परिणाम वापस मिलेंगे Addresses
तालिका जिसमें संबंधित रिकॉर्ड है ExtraData
मेज़।
यदि आप से सभी रिकॉर्ड चाहते हैं Addresses
तालिका, भले ही उनके पास कोई संगत रिकॉर्ड न हो ExtraTable
तो आपको एक प्रदर्शन करने की आवश्यकता है LEFT JOIN
.
बाएं बाहरी जोड़ निष्पादित करें (LINQ C# में) – C# | माइक्रोसॉफ्ट लर्न[^]
from a in context.Adresses join ed in context.ExtraData on a.LFD equals e.lfd into edg from e in ed.DefaultIfEmpty() where a.PROJID == 2048 select new { RESPID = e.str03, LFD = e.lfd, PROJID = a.PROJID }
[ad_2]
コメント