का उपयोग करते समय ईएफ में बड़े जेनरेट किए गए SQL क्वेरी से कैसे बचूं, मैं डेटाबेस के विरुद्ध क्वेरी करने के लिए ईएफ (डीएलएल संस्करण 4.4) का उपयोग कर रहा हूं। डेटाबेस में पाठ्यक्रम की जानकारी के साथ कई टेबल शामिल हैं। जब वास्तव में डीबी को भेजा जाता है तो मुझे एक विशाल, लगभग 1300 लाइन एसक्यूएल क्वेरी दिखाई देती है (जिसे मैं इसके आकार के कारण यहां पेस्ट नहीं कर रहा हूं)। क्वेरी मैं संदर्भ पर चल रहा हूँ लगता है:मैं()
entities.Plans
.Include("program")
.Include("program.offers")
.Include("program.fees")
.Include("program.intakes")
.Include("program.requirements")
.Include("program.codes")
.Include("focuses")
.Include("codes")
.Include("exceptions")
.Include("requirements")
where plans.Code == planCode
select plans).SingleOrDefault();
मैं जब संबंधित तालिकाओं में से प्रत्येक से जानकारी एकत्रित कर सर्वर से वापस जाने के लिए होने से बचने के लिए चाहते हैं, लेकिन इतनी बड़ी क्वेरी के साथ मैं अगर सोच रहा हूँ ऐसा करने का एक बेहतर तरीका है?
धन्यवाद।
ठीक है आप उत्सुक लोडिंग कर रहे हैं और आपकी क्वेरी एक ही समय में सभी डेटा प्राप्त करने का प्रयास कर रही है, इस प्रकार यह बड़ा क्यों है। आप वास्तव में एक समस्या के रूप में क्या देखते हैं?अन्य विकल्प आभासी गुणों के साथ आलसी लोडिंग करना है, जिसे आप उन्हें एक्सेस करने का प्रयास करते समय पृष्ठभूमि में ईएफ द्वारा लाए जाएंगे, लेकिन आपने निर्दिष्ट किया है कि आप डेटाबेस पर राउंडट्रिप्स नहीं चाहते हैं। –
यहां एक समान उत्तर है http://stackoverflow.com/questions/5521749/how-many-include-i-can-use-on-objectset-in-entityframework-to-retain-performance –
मुझे लगता है कि मैं था सोच रहा हूं कि क्या मैं इसे सही तरीके से देख रहा हूं। एक बड़ी क्वेरी बनाम कई छोटे प्रश्न या क्या ऐसा करने का एक बेहतर तरीका है। – b3n