ठीक यही हो रहा है, लेकिन मुझे लगता है कि आप जिस कारण से सोचते हैं, वह बिल्कुल नहीं है। DataReader अभी भी खुला है, लिंक में आस्थगित निष्पादन के कारण नहीं, बल्कि इसलिए कि आप अभी भी क्वेरी परिणामों के माध्यम से पुनरावृति कर रहे हैं जब आप अन्य संपत्ति तक पहुंचने का प्रयास करते हैं जो अभी तक लोड नहीं हुई है। जब आप .ToList()
call को कॉल करते हैं परिणाम एक ही बार में वापस आ जाते हैं और List<TEntity>
. में संग्रहीत हो जाते हैं क्लाइंट की मेमोरी में, एक बार में 1 रिकॉर्ड लौटाए जाने के बजाय।
आप इसे MS SQL सर्वर में MultipleActiveResultSets=true
सेटिंग का उपयोग करके प्राप्त कर सकते हैं आपकी कनेक्शन स्ट्रिंग में, लेकिन MySQL इस सेटिंग का समर्थन नहीं करता है। हालांकि, आपको जो करने में सक्षम होना चाहिए, वह .Include("tablename")
var houses = (from h in db.Houses.Include("Images")
select h).Take(10);