2009-06-15 16 views
5

में मैं JSON (नीचे वर्णित) के लिए LINQ का नमूना कोड पर अमल कोशिश कर रहा हूँ, लेकिन यह मुझे निम्न त्रुटिLINQ लैम्ब्डा पैरामीटर नहीं गुंजाइश

स्टैक ट्रेस दे रहा है:

[InvalidOperationException: लैम्ब्डा पैरामीटर दायरे में नहीं]

कोड मैं क्रियान्वित कर रहा हूँ:

 JObject rss = 
      new JObject(

       new JProperty("id", "James Newton-King"), 
       new JProperty("name", "http://james.newtonking.com"), 
       new JProperty("data", "James Newton-King's blog."), 
       new JProperty("children", 
        new JArray(
        from p in mwsysbot.Software 
        where p.SoftwareName == name 
        select new JObject(       
         new JProperty("id",p.SoftwareUUID), 
         new JProperty("name", p.SoftwareName)   
        ) 
       ) 
       ) 
       ); 

जब भी मैं लाइन "नया जेपीप्रर्टी (" नाम ", पी। सॉफ्टवेयर नाम) हटा देता हूं" कोड पूरी तरह निष्पादित करता है।

क्यों?

+1

क्या आप अपने अपवाद का स्टैकट्रैक पोस्ट कर सकते हैं? मुझे पूरा यकीन है कि जेसन.NET से त्रुटि नहीं आ रही है। –

उत्तर

0

लिंकक सॉफ्टवेयर नाम को आलसी लोड करने का प्रयास कर सकता है। नई ऑब्जेक्ट बनाने से पहले डीटीओ का उपयोग करने और पैरामीटर नाम को उत्सर्जित करने का प्रयास करें।

3

मैं इस कोशिश की और यह मेरे लिए काम किया ...

 IQueryable<Software> soft = (from s in mwsysbot.Software 
                select s).ToList(); 

JObject rss = 
      new JObject(
        new JProperty("id", "James Newton-King"), 
        new JProperty("name", "http://james.newtonking.com"), 
        new JProperty("data", "James Newton-King's blog."), 
        new JProperty("children", new JArray(
         from m in soft 
         select new JObject(
          new JProperty("id",m.SoftwareName), 
          new JProperty("name", m.SoftwareName), 
          new JProperty("children",new JArray()) 
          ) 
         )) 


      ); 

मैं कारण नहीं जानता!

क्या ऐसा लगता है कि हम उपर्युक्त स्थान पर केवल "सूची" डेटा संरचना का उपयोग कर सकते हैं?

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