2009-06-15 34 views
5

tôi đang cố gắng thực thi mã mẫu của LINQ to JSON (đề cập dưới đây) nhưng nó được đem lại cho tôi lỗi sauLINQ to JSON: InvalidOperationException: Lambda Parameter không trong phạm vi

Stack Trace:

[InvalidOperationException: Lambda Parameter không trong phạm vi]

Mã tôi đang thực hiện là:

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

Ngoài ra khi tôi xóa dòng "new JProperty (" name ", p.SoftwareName)", mã thực thi hoàn hảo.

Tại sao?

+1

Bạn có thể đăng stacktrace ngoại lệ của mình không? Tôi khá chắc chắn rằng lỗi không đến từ Json.NET. –

Trả lời

0

LINQ có thể cố gắng tải xuống phần mềm tên. Hãy thử sử dụng DTO và háo hức tải tên thông số trước khi tạo đối tượng mới.

3

tôi đã cố gắng này và nó làm việc cho tôi ...

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


      ); 

Tôi không biết lý do!

Có phải chúng ta chỉ có thể sử dụng cấu trúc dữ liệu "Danh sách" ở địa điểm trên không?

Các vấn đề liên quan