c# - How to write recursive lambda expression (LINQ query) -
मेरे पास एक ऑब्जेक्ट है:
सार्वजनिक वर्ग फ़ोल्डर: डीबीओबैजबेस {सार्वजनिक स्ट्रिंग नाम {get ; सेट; } सार्वजनिक सूची & lt; FileEntry & gt; फ़ाइलें {प्राप्त करें; सेट; } सार्वजनिक फ़ोल्डर ParentFolder {get; सेट; } सार्वजनिक सूची & lt; फ़ोल्डर & gt; बालफ़ोल्डर {प्राप्त करें; सेट; }}
और मैंने एक क्वेरी लिखा है जो प्रत्येक फ़ोल्डर के भीतर एक फ़ोल्डर संरचना और सभी फ़ाइलों को प्राप्त करता है:
var परिणाम = DbContext.Set & lt; फ़ोल्डर & gt ; ()। (एफ = & gt; एफ। पेरेंटफ़ोल्डर) शामिल करें। (एफ = & gt; एफ। चाइल्डफॉल्डर्स) को शामिल करें। (एफ = & gt; एफ फाइलों) को शामिल करें। (एफ = & gt; एफ। चाइल्डफ़ोल्डर। चयन करें (एफ 1 = & Gt; f1.files)) शामिल हैं। (एफ = & gt; f.ChildFolders.Select (f1 = & gt; f1.ChildFolders)। चुनें (f2 = & gt; f.Files))। शामिल करें (एफ = & gt; ChildFolders.Select (एफ 1 = & gt; f1.ChildFolders) .Select (F2 = & gt; f.ChildFolders.Select (F3 = & gt; f3.Files))) .Include (च = & gt; f.ChildFolders.Select (f1 = & gt; f1.ChildFolders) .Select (F2 = & gt; f.ChildFolders.Select (F3 = & gt; f3.ChildFolders.Select (F4 = & gt; f4.Files)))) .Include (च = & gt; f.ChildFolders .Select (एफ 1 = & gt; f1.ChildFolders) .Select (F2 = & gt; f.ChildFolders.Select (F3 = & gt; f3.ChildFolders.Select (F4 = & gt; f4.ChildFolders.Select (F5 = & gt; F5। फ़ाइलें)))))) Lude (f = & gt; f.ChildFolders.Select (एफ 1 = & gt; f1.ChildFolders) .Select (F2 = & gt; f.ChildFolders.Select (F3 = & gt; f3.ChildFolders.Select (F4 = & gt; f4.ChildFolders.Select (F5 = & gt ; F5.ChildFolders.Select (f6 = & gt; f6.files))))))। जहां (च = & gt; f.ParentFolder == नल);
उपरोक्त रिटर्न बिल्कुल मुझे क्या चाहिए, लेकिन मुझे कोड पसंद नहीं है, क्योंकि मैं फ़ोल्डर संरचना में एक से अधिक परतें जोड़ना चाहता हूं।
कोई भी विचार मैं यह कैसे लिख सकता हूं, इसलिए मुझे सभी फ़ोल्डर और सभी फाइल मिलें, मेरे फ़ोल्डर संरचना में मेरे पास परतों की संख्या के बावजूद?
मुझे लगता है कि इसका कारण एसक्यूएल का भी कोई समर्थन नहीं है ...
यदि आप डीबी (या आप सभी में एक डीबी का उपयोग नहीं कर रहे हैं) को कई प्रश्नों का उपयोग करते हुए "इन कोड" निष्पादित करने में ठीक हैं, तो गोल्गरका की टिप्पणी देखें।
Comments
Post a Comment