c# - Filter Sub-Collection of Collection -
मेरे पास निम्न कक्षाएं हैं:
वर्ग ग्राहक {सार्वजनिक इन्ट आईडी ग्राहक; सेट} सार्वजनिक स्ट्रिंग नाम {get; सेट;} सार्वजनिक वर्चुअल आइकलेंक्शन & lt; विशेषज्ञता & gt; विशेषज्ञों {प्राप्त करें; सेट;}} वर्ग विशेषज्ञता (सार्वजनिक इंट आईडीईएक्टेस्टिस {get; सेट;} सार्वजनिक स्ट्रिंग विवरण {get; सेट;} सार्वजनिक वर्चुअल आइकलेंकिंग & लेफ्टिनेंट; सबएक्सटेर्टिस & gt; उप-एक्सपर्टिस [प्राप्त करें; सेट;}} क्लास सबएक्टेक्टेस {सार्वजनिक इंट आईडीस्यूबटेक्स्टेस {प्राप्त; सेट;} सार्वजनिक int आईडीईएक्टेर्टिस {प्राप्त; सेट;} सार्वजनिक स्ट्रिंग विवरण {get; सेट;} सार्वजनिक वर्चुअल विशेषज्ञता विशेषज्ञता {get; सेट करें;}}
मैं एक IQueryable का उपयोग करके सबएक्स्टर्टस कैसे फ़िल्टर कर सकता हूं, और फ़िल्टर की स्थिति को कैसे रख सकता हूं? असल में मैं SubExpertise द्वारा फ़िल्टर करना चाहता हूं, लेकिन क्वेरी में अधिक फिल्टर जोड़ने के लिए possibilty को रखने
उदाहरण: मैं सभी ग्राहकों को चाहता हूं जिसमें एक उप-एक्सटर्टेस 'एक्स' या 'वाई' है ध्यान रखें कि उप-एक्सर्टर्टस संग्रह का एक उप-संग्रह है (विशेषज्ञता)। और उसके बाद मेरे पास नए फिल्टर हो सकते हैं।
मुझे लगता है कि आप भाव गतिशील रूप से आप काम करने के लिए एक बिन्दु बिल्डर का इस्तेमाल कर सकते हैं मेरा पसंदीदा है।
इस छोटे मणि का उपयोग आप यह कर सकते हैं:
var pred = Predicatebuilder.Create & lt; SubExpertise & gt; (एस = & gt; s.Description == " एक्स"); Pred = pred.Or (s = & gt; s.Description == "y"); Var ग्राहक = db.Customers। जहां (सी = & gt; c.Expertises। कोई भी (ई = & gt; ई.एस.बी.एक्स.ए.ए.एक्स्यूएनेबल)। कोई भी (pred))); e.SubExpertises
को IQueryable
में डाल देना चाहिए क्योंकि यह संकलन-समय प्रकार आइकलिंग
है, और एक्सटेंशन विधि कोई
जो आइकलिंग
फिट बैठता है अभिव्यक्ति
को स्वीकार नहीं करता है, लेकिन Func
स्वीकार करता है, इसलिए यह नहीं है संकलित करें।
Comments
Post a Comment