2012-10-05 13 views
5

मैं वर्तमान में LINQ में एक नेस्टेड क्वेरी करने के लिए कोशिश कर रहा हूँ, लेकिन मैं एक त्रुटि संदेश प्राप्त हो रही हैं:नेस्टेड LINQ क्वेरी, त्रुटि संदेश

var subcatquery = from categories in mydb.Categories 
        where categories.ParentId == null 
        select new 
        { 
         category = categories.Name, 
         subcat = (from sub in mydb.Categories 
           where sub.ParentId == sub.Id 
           select new 
           { 
            subcatItem = sub.Name, 
            subcatId = sub.Id 
           }) 
        }; 

परिणाम देखें = The type '<>f__AnonymousType0<subcatItem,subcatId>' exists in both 'myapplication.dll' and 'System.Web.dll'

मैं क्यों underestand नहीं कर सकते .. अगर मैं उप क्वेरी को हटा देता हूं और इसे अपने आप रखता हूं ... यह बिल्कुल ठीक है।

subcat प्रकार collection<> है, क्या यह समस्या है?

class categoryGroup 
    { 
     public string category; 
     public Collection<subcategoryGroup> subcat; 

    } 
    class subcategoryGroup 
    { 
     public string subcatItem; 
     public int subcatId; 

    } 
+0

क्या आप सबकैट में ऐसा करने की कोशिश कर रहे हैं ?? क्या आप कृपया इसे विस्तारित करेंगे ... मैंने सोचा था कि आप आंतरिक शामिल होना चाहते हैं I माता-पिता और आईडी के बीच n subcat .. है ना? – Usman

+0

आपकी उप पूछताछ में आपको subcatitem नाम और सबकैटिड मिलता है और आप दोनों क्वेरी समान नाम में उपयोग करते हैं ?? – Rajpurohit

+0

@राजपुरोहित हां .. यह एक रिश्तेदार तालिका है जो खुद को इंगित करती है। मुझे इंगित करना चाहिए कि मैं एक ही टेबल से पूछताछ कर रहा हूं। – user1655940

उत्तर

1

अपने प्रोजेक्ट में मैं इस तरह उप क्वेरी का उपयोग कर रहा यह नीचे

var data = (from con in dbData.tblPresenters 
         where con.PresenterID == ID 
         select new 
         { 
          Name = con.Name, 

          Title = dbData.tblTitles.Where(x => x.TitleID == con.PresenterTitleID).FirstOrDefault() 
         }).ToList(); 

है मैं इस तुम्हारी मदद करेगा लगता है ....

+1

मुझे लगता है कि मुझे पता है कि समस्या क्या है, पहली 'नई' अज्ञात वर्ग दूसरी 'नई' अज्ञात कक्षा के साथ विरोधाभासी है क्योंकि यह पहले से ही बनाई गई है। मुझे नहीं पता कि समाधान क्या है ... – user1655940

1

आप के बजाय/नाम प्रकारों को परिभाषित करने की कोशिश की है उन्हें अज्ञात रखने के लिए,

var subcatquery = from categories in mydb.Categories 
        where categories.ParentId == null 
        select new categoryGroup() 
        { 
         category = categories.Name, 
         subcat = (from sub in mydb.Categories 
           where sub.ParentId == sub.Id 
           select new subcategoryGroup() 
           { 
            subcatItem = sub.Name, 
            subcatId = sub.Id 
            }) 
        }; 
+0

मैंने कोशिश की है, यह मुझे संकलित करने की अनुमति नहीं देता है। इस कथन में एक त्रुटि है: नया उपश्रेणी समूह चुनें() – user1655940

संबंधित मुद्दे