2012-04-18 12 views
5

का उपयोग कर जेसन लौटें क्या एएसपीनेट वेबएपीआई में जेसन को वापस करने के लिए पेटापोको गतिशील क्वेरी का उपयोग करना संभव है?पेटापोको गतिशील और वेबएपीआई

// वेबएपीआई नियंत्रक

public class BranchController : ApiController 
{ 
    public IEnumerable<dynamic> Get() 
    { 
     // Create a PetaPoco database object 
     var db = new PetaPoco.Database("DefaultConnection"); 

     // Show all Branches 
     var b = db.Query<dynamic>("SELECT * FROM Branches").ToList(); 

     return b; 
    } 

} 

मैं एक त्रुटि प्राप्त हो

एक्सएमएल serializable होने के लिए, प्रकार जो IEnumerable से विरासत जोड़ें के एक कार्यान्वयन होना चाहिए (System.Object)

+0

मैं PetaPoco उपयोग नहीं किया है, लेकिन आप की कोशिश की गतिशील JSONObject या JsonArray उदाहरणों को लौट वस्तुओं परिवर्तित? http://goo.gl/BaIx5 – cecilphillip

उत्तर

2

JSON.Net बॉक्स से बाहर इस संभालती है, तो मैं एक कस्टम फ़ॉर्मेटर जोड़ने के लिए था।

यह वह जगह है MSDN लेख मैं समस्या को हल करने के लिए इस्तेमाल किया: http://code.msdn.microsoft.com/Using-JSONNET-with-ASPNET-b2423706

0

चूंकि पेटापोको List<dynamic> देता है, वास्तविक उत्तर यहां है "क्या वेबएपी एक सूची से जेसन लौटा सकता है"?

उत्तर हाँ है, लेकिन WebApi को अनुरोध पर आधारित जेसन या एक्सएमएल की तुलना में Content Negotiation नामक एक चीज़ है।

Json का अनुरोध की कोशिश करो या एक्सएमएल के लिए इस प्रयास करें:

// Show all Branches 
    return (IEnumerable<dynamic>)db.Query<dynamic>("SELECT * FROM Branches"); 
संबंधित मुद्दे