मैं अपने .NET Framework (EF6) कोड को एएसपी.नेट कोर (ईएफ कोर) में स्थानांतरित कर रहा हूं, और मैंने इस मुद्दे पर ठोकर खाई।ईएफ कोर का उपयोग करने के बाद जंक्शन तालिका में
EF6 में मैं शामिल करें का उपयोग() और चयन() उत्सुक लोडिंग के लिए: यहाँ कुछ उदाहरण कोड है
return _context.Post
.Include(p => p.PostAuthor.Select(pa => pa.Author).Select(a => a.Interests))
PostAuthor एक जंक्शन तालिका है और वहाँ भी एक जंक्शन तालिका "AuthorInterest" है जो मैं ईएफ 6 में शामिल करने की आवश्यकता नहीं थी (चयन सीधे एक के लिए जाता है। रुचि)।
वैसे भी, मैं देख सकता हूं कि ईएफ 7 में यह फिर से काम किया गया है, जिसका अर्थ है कि मुझे अब नेस्टेड प्रश्नों के लिए ThenInclude() का उपयोग करना चाहिए। हालांकि ...
return _context.Post
.Include(p => p.PostAuthor)
.ThenInclude(pa => pa.Select(pa2 => pa2.Author))
...etc
उपरोक्त कोड चयन() कथन के कारण विफल रहता है। https://docs.efproject.net/en/latest/querying/related-data.html पर प्रलेखन का सुझाव है कि मुझे इसकी आवश्यकता नहीं है और मैं तुरंत लेखक तक पहुंच सकता हूं, लेकिन मुझे अंतिम लैम्ब्डा में आईसीओलेक्शन दिखाई देता है, इसलिए मुझे स्पष्ट रूप से चयन() की आवश्यकता है। मैं क्वेरी में कई जंक्शन टेबलों के माध्यम से आगे जाता हूं, लेकिन सादगी के लिए, चलिए बस पहले पर ध्यान केंद्रित करते हैं।
मैं यह काम कैसे कर सकता हूं?
वाह, धन्यवाद
उदाहरण के लिए EF6 श्रृंखला में शामिल हैं। बहुत अजीब - विजुअल स्टूडियो मुझे pa.Author (इसके बजाय कुछ लिंक विधियों का सुझाव देता है) के लिए इंटेलिजेंस नहीं देगा और जैसे ही मैं इसे लिखने की कोशिश करता हूं, सबकुछ लाल रंग के साथ रेखांकित करेगा। आपकी पोस्ट के बाद मैंने वीएस की उपेक्षा की और सब कुछ एक आकर्षण की तरह काम करने के बाद। – nikovn
यह अजीब बात है। मैं वीएस2015 अपडेट 3 का उपयोग कर रहा हूं, और जब मैं कुछ लिखता हूं जैसे 'db.Parents.Include (p => p.Children)। फिर शामिल करें (c => c.Child)। फिर शामिल करें (c => c.Parents) 'I प्रत्येक लैम्ब्डा में सही इंटेलिसेंस समर्थन प्राप्त करें। –
वीएस2015 अंतिम अपडेट 3 यहां भी। आश्चर्यचकित नहीं है, मेरे पास कोर प्रोजेक्ट्स पर अन्य बग हैं - उदाहरण के लिए जब मैं इंटेलिसेंस द्वारा सुझाए गए आइटम का चयन करता हूं तो यह फ़ाइल के बीच में प्रतीकों को लिखता है, आदि शायद यह प्लगइन्स है ... – nikovn