2009-06-15 25 views
5

I JSON (aşağıda belirtilen) için LINQ örnek kod yürütmesine çalışıyorum değil ama bana aşağıdaki hataLINQ Lambda Parametre kapsamında

Yığın İzleme veriyor:

[ınvalidoperationexception: Lambda parametre değil kapsamında] ben yürütme am

Kod geçerli:

 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)   
        ) 
       ) 
       ) 
       ); 

Ayrıca "yeni JProperty (" name ", p.SoftwareName) satırını kaldırdığımda, kod mükemmel bir şekilde çalışır.

Neden? Linq, YazılımAdı'nı tembel olarak yüklemeyi deneyebilir.

+1

Özel durumunuzun stacktraceini gönderir misiniz? Bu hatanın Json.NET'ten gelmediğinden eminim. –

cevap

0

Bir DTO kullanmayı deneyin ve yeni nesneyi oluşturmadan önce parametre adını isteyin.

3

Bu çalıştı ve bu benim için çalıştı ...

 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()) 
          ) 
         )) 


      ); 

nedenini bilmiyorum!

Yukarıdaki yerde yalnızca "Liste" veri yapısını kullanabiliyor muyuz?