मुझे अपने एंटिटी फ्रेमवर्क मॉडल में एक अजीब व्यवहार दिखाई दे रहा है। मैं एक प्रश्न है कि इस तरह दिखता है मिल गया है:एंटिटी फ्रेमवर्क एक पंक्ति के लिए शून्य देता है यदि उस पंक्ति में पहला कॉलम शून्य है
var rows = (from alarm in context.Alarms
join temp in context.ListDetails on alarm.ListDetailId equals temp.ListDetailId into entries from entry in entries.DefaultIfEmpty()
join read in context.Reads on alarm.ReadId equals read.ReadId
join plate in context.Images on alarm.ReadId equals plate.ReadId
where alarm.IActive == 1 && ! alarm.TransmittedAlarm
where read.IActive == 1
where plate.IActive == 1 && plate.ImageTypeId == 2
select new { alarm, entry, read, plate }).ToArray();
क्वेरी स्तंभ नाम से वर्णमाला के क्रम में सभी स्तंभों देता है। यह पता चला है कि परिणाम कॉल में कुछ पंक्तियों के लिए यह कॉलम न्यूल है। जब मैं डीबगर में पंक्तियों चर का विस्तार करता हूं, तो मुझे लगता है कि पूरी पंक्ति शून्य है!
संपादित करें: कुछ स्पष्टीकरण।
"पहला कॉलम" द्वारा, मेरा मतलब है कि पहली पंक्ति का पहला स्तंभ, यानी "चयन ए, बी, सी से ..." में, मेरा मतलब है ए। ऐसा होता है कि क्वेरी फ्रेमवर्क बनाता है वर्णित क्रम में सेट किए गए परिणाम में सभी कॉलम लौटाता है, और पहला वर्णमाला रूप से शून्य है और कुछ पंक्तियों के लिए शून्य है।
प्रश्न में कॉलम प्राथमिक कुंजी नहीं है; अगर यह प्राथमिक कुंजी थी, तो यह शून्य नहीं हो सका।
जब इकाई फ्रेमवर्क ऑब्जेक्ट में लौटाए गए डेटा की पंक्तियों को संसाधित करता है, तो यह प्रत्येक पंक्ति में पहले कॉलम के मान को देखता है। यदि वह कॉलम शून्य है, तो वह उस कॉलम सेट से संबंधित संपत्ति के साथ किसी ऑब्जेक्ट की बजाय पंक्ति के लिए शून्य पर वापस आ रहा है।
मुझे विश्वास नहीं है कि इसमें विशेष रूप से बाएं बाहरी शामिल होने के साथ कुछ भी करना है; यह बस होता है कि मेरी क्वेरी एक का उपयोग करती है। मैंने इसे सत्यापित करने के लिए कोई परीक्षण नहीं किया है, हालांकि, यह सिर्फ एक अनुमान है।
क्या किसी ने इसे पहले देखा है? क्या किसी के पास इसके लिए एक फिक्स है?
टोनी
क्या आपको बाएं शामिल होने की आवश्यकता है? –
आपको किस जगह में त्रुटि मिलती है? –
क्या आप एसक्यूएल क्वेरी पोस्ट कर सकते हैं कि ईएफ डीबी को भेजता है? –