c# - Why does this LINQ-to-SQL query get a NotSupportedException? -


निम्न LINQ कथन:

  सार्वजनिक ओवरराइड सूची & lt; मद & gt; SearchListWithSearchPhrase (स्ट्रिंग खोजफ्रेश) {सूची & lt; स्ट्रिंग & gt; SearchTerms = स्ट्रिंगहल्परस.गेट सर्चटर्म (खोजफ्रेज); (Var db = डेटासार्ट.गेटकॉन्टेक्स्ट ()) {रिटर्न (डीबी में टी से। टास्क में जहां searchTerms.All (term = & gt; t.Tetle.ToUpper)। शामिल है (शब्द। ToUpper ()) & amp; amp; t । डीक्रिप्शन.ToUpper ()। इसमें शामिल है (शब्द। ToUpper ())) टी का चयन करें। कस्ट & लेफ्टिनेंट; आइटम & gt; ()। ToList (); }}  

मुझे यह त्रुटि देता है:

System.NotSupportedException: स्थानीय अनुक्रम LINQ से SQL कार्यान्वयन में उपयोग नहीं किया जा सकता है कंटेनर () ऑपरेटर को छोड़कर क्वेरी ऑपरेटर।

चारों ओर देखिए लगता है कि मेरा एकमात्र विकल्प सभी मेरे आइटम पहले सामान्य सूची, फिर उस पर एक LINQ क्वेरी करें।

या क्या त्रुटि से बचने के लिए उपरोक्त LINQ-to-SQL कथन को दोबारा आरम्भ करने का एक चतुर तरीका है?

उत्तर:

धन्यवाद रेंडी, आपके विचार ने मुझे निम्नलिखित समाधान बनाने में मदद की यह सुरुचिपूर्ण नहीं है, लेकिन यह समस्या का समाधान करता है और चूंकि यह कोड उत्पन्न होगा, मैं उदाहरण के लिए संभाल सकता हूँ बिना किसी अतिरिक्त कार्य के 20 खोज शब्द:

  सार्वजनिक ओवरराइड सूची & lt; आइटम & gt; SearchListWithSearchPhrase (स्ट्रिंग खोजफ्रेश) {सूची & lt; स्ट्रिंग & gt; SearchTerms = स्ट्रिंगहल्परस.गेट सर्चटर्म (खोजफ्रेज); (Var db = डेटासार्ट.गेटकॉन्टेक्स्ट ()) {स्विच (सर्चटम्स.काउंट ()) {मामला 1: रिटर्न (डीबी। टास्क।) (जहां (टी = & gt; टी। टाइट। कंटन (सर्च सिस्टम [0]) || टी .निर्देशन। (खोज खोजशब्द [0]) शामिल हैं। चुनें (टी = & gt; टी)) कास्ट & lt; आइटम & gt; ()। ToList (); मामला 2: वापसी (डीबी। टास्क। जहां (टी = & gt; (टी। टाइट। कंटन (खोज टार्म्स [0]) || टी। डिस्क्रिप्शन। शामिल हैं (सर्च सर्च [0])) और amp; टी (टी। इसमें शामिल हैं (सर्च टार्म्स [1]) || टी। डिस्क्रिप्शन। कंटन (सर्च सर्च [1]))। चुनें (टी = & gt; टी)) कास्ट & lt; आइटम & gt; ()। ToList (); मामला 3: वापसी (डीबी। टास्क। जहां (टी = & gt; (टी। टाइट। कंटन (खोज टार्म्स [0]) || टी। डिस्क्रिप्शन। शामिल हैं (सर्च सर्च [0])) और amp; टी (टी। इसमें शामिल हैं (सर्च सर्च [1]) || टी। डिस्क्रिप्शन। कंटन (खोज टार्म्स [1]) & amp; amp; amp;; टी। टाइट। कंटन (खोज टार्म्स [2]) || टी। डिस्क्रिप्शन.संगत (खोज टार्म्स [2]) ))। चुनें (टी = & gt; टी)) कास्ट & lt; आइटम & gt; ()। ToList (); डिफ़ॉल्ट: वापसी शून्य; }}}}  

एड, मैंने एक समान स्थिति में भाग लिया है। कोड नीचे है कोड की महत्वपूर्ण पंक्ति है, जहां मैं सदस्य सूची चर सेट करता हूं। देखें कि क्या यह आपकी स्थिति को फिट करता है। क्षमा करें, यदि स्वरूपण अच्छी तरह से बाहर नहीं आया।

रैंडी

  // सभी सदस्यों को एक ActiveDirectorySecurityId सूची में एक से मेल खाते हैं। IEnumerable & LT; सदस्य & gt; सदस्यों = डेटाबेस। सदस्य। जहां (सदस्य = & gt; सक्रिय डायरेक्टरीआईडी.संसाधन (सदस्य। सक्रिय डायरेक्टरी सिक्योरिटी आईडी))। चयन करें (सदस्य = & gt; सदस्य); // यह जानने के लिए जरूरी है कि अगले क्वेरी में "स्थानीय संग्रह के साथ क्वेरीज़ समर्थित नहीं हैं" // त्रुटि। सदस्य सूची = सदस्य। सूची के लिए & सदस्य; सदस्य & gt; (); // अब पहले चरण में प्राप्त सदस्यों के साथ जुड़े सभी भूमिकाएं प्राप्त करें IEnumerable & LT; भूमिका & gt; भूमिकाएं = डेटाबेस में से मैं। सदस्य रोल्स जहां memberList.Contains (i.Member) i। चुनें;  

Comments

Popular posts from this blog

java - Is there an object like a "Set" that can contain only unique string values, but also contain a count on the number of occurrences of the string value? -

MVP, design question -