2012-04-18 16 views
5

È possibile utilizzare la query dinamica PetaPoco per restituire Json in Web API ASP.net?Restituisci Json utilizzando PetaPoco Dynamic & WebAPI

// WebAPI controller

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

} 

Sto ricevendo un errore

Per essere XML serializzabile, tipi che ereditano da IEnumerable deve avere un'implementazione di Add (System.Object)

+0

Non ho mai usato PetaPoco, ma hai provato a convertire oggetti restituiti alle istanze JsonObject o JsonArray dinamici? http://goo.gl/BaIx5 – cecilphillip

risposta

0

Poiché PetaPoco restituisce List<dynamic> la vera risposta è "WebApi può restituire un JSON da un elenco"?

La risposta è sì, ma WebApi ha una cosa chiamata Content Negotiation che restituisce JSON o XML in base alla richiesta.

Prova richiesta JSON o provare questo per XML:

// Show all Branches 
    return (IEnumerable<dynamic>)db.Query<dynamic>("SELECT * FROM Branches");