2011-12-16 14 views
5

मैं थोड़ी देर के लिए एंटिटी फ्रेमवर्क के साथ काम कर रहा हूं लेकिन अभी भी कुछ "ब्लैक होल" हैं जो यह हुड के नीचे काम कर रहा है। लेखों के कुछ पढ़ने के बाद भी मुझे यकीन नहीं है कि मेरी समझ सही है।हुड के तहत ईएफ को समझना। बनाम शामिल हों

  • एफई कैसे शामिल करें हुड के नीचे काम कर रहा है:


    सवाल के साथ शुरू की सुविधा देता है?

  • जुड़ें और शामिल करें के बीच अंतर क्या हैं?
  • शामिल करने के साथ प्रदर्शन समस्याएं (आलसी लोडिंग बनाम उत्सुक लोडिंग, जेनरेट एसक्यूएल प्रश्न आदि)?
  • जब मुझे उपयोग करना चाहिए तो इसके बजाय शामिल हों और इसके विपरीत?

उत्तर

9

लिनक या लैम्ब्डा अभिव्यक्तियों के माध्यम से ईएफ से पूछताछ करते समय, केवल अंतर्निहित स्कीमा एफके प्रदान नहीं करता है, तो आपको केवल बयानों में शामिल होने की आवश्यकता है, और इस प्रकार आपके पास ऑब्जेक्ट पर नेविगेशन गुण नहीं हैं।

दूसरी ओर, इसमें शामिल हैं (उत्सुक लोडिंग) और आलसी लोडिंग केवल एफके हैं, अगर यह नेविगेशन गुणों का उपयोग करती है।

दोनों मामलों में अंतर्निहित एसक्यूएल जुड़ने का उपयोग करेगा (जैसा कि एसक्यूएल में "नेविगेशन प्रॉपर्टी" अवधारणा नहीं है)।

प्रदर्शन के लिए, यह स्थितियों पर निर्भर करता है। आलसी लोडिंग बनाम आलसी लोडिंग (इसलिए एफके परिदृश्य में) एक कठिन विकल्प हो सकता है।

मैं आमतौर पर आलसी लोडिंग के साथ जाता हूं, जब आपके पास एक बड़ा मुख्य परिणाम होता है, लेकिन आपको पूरे परिणाम के कुछ आइटमों में केवल "शामिल" डेटा की आवश्यकता होती है।

यदि आप आगे जानते हैं कि आपको पूरे परिणाम के डेटा में शामिल होने की आवश्यकता होगी, तो उत्सुक लोडिंग प्रदर्शन के लिए बेहतर हो सकती है। मैं प्रयोग करने और खुद के लिए देखने का सुझाव दूंगा।

+0

उत्तर के लिए धन्यवाद, लेकिन अभी भी कुछ और सटीक की आवश्यकता है। –

+0

क्या होगा यदि आपने अंतर्निहित विदेशी कुंजी के बिना मैन्युअल रूप से जोड़े गए नेविगेशन गुणों को जोड़ा है। उम्मीद के रूप में काम शामिल होगा, या नहीं? – Dan

संबंधित मुद्दे