इन 3 प्रकार के लोडिंग के बीच अंतर क्या हैं? क्या कोई उदाहरण के साथ समझा सकता है? विभिन्न संसाधन ऑनलाइन विभिन्न परिभाषाओं का उपयोग करते हैं जो आवश्यक से अधिक भ्रम पैदा करते हैं।आलसी लोडिंग, डिफर्ड लोडिंग और उत्सुक लोडिंग एंटिटी फ्रेमवर्क
उत्तर
आलसी लोडिंग और डिफरर्ड सुंदर समानार्थी हैं (AFAIK, अगर मैं गलत हूं तो कृपया मुझे सही करें)। बड़ा अंतर उत्सुक और आलसी के बीच है। उत्सुक सामने होगा, Lazy केवल तब होता है "की जरूरत के रूप में" और निष्पादन डीबी पर क्या होगा स्तर के के एक सरल डालते हैं एक उदाहरण
var people = (from p in people SELECT p).ToList();
var jobs = (from j in jobs SELECT j).ToList();
var peopleAndJobs = (from p in people JOIN j on j.personId equals p.personId SELECT p).ToList()
यह उत्सुक लोड हो रहा है का एक उदाहरण है के रूप में बयान में शामिल हों। हम सभी लोगों, सभी नौकरियां प्राप्त कर रहे हैं, और हम स्मृति में शामिल हो रहे हैं। बहुत स्मार्ट नहीं (आमतौर पर)। यह आलसी शैली की तरह दिखता है।
var people = (from p in people SELECT p);
var jobs = (from j in jobs SELECT j);
var peopleAndJobs = (from p in people JOIN j on j.personId equals p.personId SELECT p).ToList()
क्या यह क्या कर रहा है (IQueryable आलसी है) दोनों लोगों और इस काम के लिए एक IQueryable पैदा कर रही है, और शामिल होने के डीबी में हो रहा है। यह नेटवर्क गतिविधि को बचाता है, और आमतौर पर वास्तव में तेज़ होता है, क्योंकि डीबी को जुड़ने के लिए अनुकूलित किया जाता है।
जब तक हम स्पष्ट रूप से कहते हैं कि "मुझे वह डेटा चाहिए!" (इसे जोड़ने के लिए, इसके माध्यम से पुनरावृत्ति, आदि) यह आलसी है। कुछ और quirks हैं लेकिन यह एक सभ्य प्राइमर होना चाहिए।
आलसी/डिफरर्ड लोडिंग: आलसी लोडिंग और डिफरर्ड लोडिंग एक ही चीज़ है। रिश्ते को तब लोड किया जाता है जब इसे पहली बार एक्सेस किया जाता है। विचार यह है कि यदि डेटा की आवश्यकता नहीं है तो इसे लोड नहीं किया जाना चाहिए।
उत्सुक लोडिंग: अभिभावक वस्तु के साथ संबंध प्राप्त किया जाता है। यह डेटा लोड करने में अधिक सक्षम हो सकता है लेकिन डेटा का उपयोग किए जाने वाले डेटा के बावजूद डेटा लोड करेगा।
जब किसी क्वेरी द्वारा ऑब्जेक्ट लौटाए जाते हैं, तो संबंधित ऑब्जेक्ट्स एक ही समय में लोड नहीं होते हैं।
इसके बजाय नेविगेशन संपत्ति का उपयोग होने पर वे स्वचालित रूप से लोड हो जाते हैं। "आलसी लोडिंग" के रूप में भी जाना जाता है,
- 1. रेल में उत्सुक लोडिंग और आलसी लोडिंग
- 2. लागू आलसी लोडिंग बनाम आलसी लोडिंग
- 3. इकाई फ्रेमवर्क आलसी लोडिंग
- 4. रेल 3: आलसी लोडिंग बनाम आलसी लोडिंग
- 5. इकाई फ्रेमवर्क - शामिल/उत्सुक लोडिंग और आलसी लोडिंग का उपयोग करने के बीच क्या अंतर है?
- 6. निबर्ननेट, उत्सुक लोडिंग और पेजिंग
- 7. इकाई फ्रेमवर्क 4.1 डिफ़ॉल्ट उत्सुक लोडिंग
- 8. इकाई फ्रेमवर्क कैस्केडिंग हटाना और आलसी लोडिंग
- 9. उत्सुक लोडिंग क्या है?
- 10. इकाई फ्रेमवर्क - संबंधित इकाइयों की उत्सुक लोडिंग
- 11. आलसी लोडिंग, फ़िल्टरिंग और सॉर्टिंग
- 12. हाइबरनेट आलसी लोडिंग और हेज़ेलकास्ट
- 13. यूनिट परीक्षण (आलसी लोडिंग)
- 14. सिद्धांत आलसी लोडिंग
- 15. आलसी लोडिंग लाइब्रेरी?
- 16. आलसी लोडिंग क्या है?
- 17. आलसी लोडिंग जावास्क्रिप्ट
- 18. node.js में आलसी लोडिंग
- 19. UITableView आलसी लोडिंग अनुकूलन
- 20. गुणों की आलसी लोडिंग
- 21. gwt आलसी लोडिंग
- 22. एंड्रॉइड सूचीदृश्य आलसी लोडिंग
- 23. इकाई फ्रेमवर्क 4 चुनिंदा आलसी लोडिंग गुण
- 24. LINQ अभिव्यक्ति वाक्यविन्यास उत्सुक लोडिंग
- 25. उत्सुक लोडिंग एसोसिएशन लेकिन वापसी
- 26. NHibernate उत्सुक लोडिंग संग्रह + पेजिंग
- 27. रेल गिनती की उत्सुक लोडिंग?
- 28. जब आलसी लोडिंग/हाइबरनेट में उत्सुक लोडिंग का उपयोग करना है?
- 29. वसंत, हाइबरनेट, ब्लॉब आलसी लोडिंग
- 30. लार्वेल मॉडल उत्सुक लोडिंग और ऑर्डरिंग
नोट- सिंटैक्स 100% नहीं हो सकता है, बस कफ से बाहर जा रहा है। –
आपके उदाहरण के अनुसार, एक बार एक ToList करते हैं, यह उत्सुक लोडिंग है क्योंकि यह डेटा प्राप्त करने के लिए डीबी हिट करता है। तो, यह एक प्रोग्रामिंग शैली के अधिक प्रतीत होता है। हालांकि, ईएफ के साथ, संदर्भ विकल्प में LazyLoading को सत्य या गलत के रूप में सेट करने का एक तरीका है। यह कैसे फिट है? – DotnetDude
आजी 4 LazyLoading बंद के साथ आपको लोगों को कहने की आवश्यकता होगी। नौकरियों के रिकॉर्ड वापस लाने के लिए शामिल करें ("नौकरियां") (नौकरियां मानना लोगों को FK'd है)। LazyLoading के साथ, जब आवश्यक हो तो वह डेटा वापस कर दिया जाएगा। अर्थात। जब आप लोग कहते हैं। जॉब्स। टॉलिस्ट(); –