2012-04-18 19 views
5

¿Es posible utilizar la consulta dinámica PetaPoco para devolver Json en ASP.net WebAPI?Devuelva Json utilizando PetaPoco Dynamic y WebAPI

// WebAPI controlador

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

} 

estoy recibiendo un error

Para ser XML serializable, tipos, que heredan de IEnumerable debe tener una implementación de Agregar (System.Object)

+0

nunca he utilizado PetaPoco, pero ¿ha intentado convertir objetos devueltos a instancias dinámicas JSONObject o JSONArray? http://goo.gl/BaIx5 – cecilphillip

Respuesta

0

Dado que PetaPoco devuelve List<dynamic>, la respuesta real aquí es "¿Puede WebApi devolver un Json de una lista?"?

La respuesta es sí, pero WebApi tiene una cosa llamada Content Negotiation que devuelve Json o XML en función de la solicitud.

Intenta solicitar JSON o XML para probar esto:

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