Cómo devolver un objeto dinámico de una consulta SQL
Tengo una situación en la que una tienda devuelve una colección de productos, pero no sé cómo funciona la estructura del objeto porque la consulta es muy dinámica.
Una consulta puede devolver:
Id | Ubicación | MarketSegment | ... n columnas
y otro puede regresar
Id | Representante de ventas | Ubicación | Región | ... n columnas
Simplemente devuelvo un "objeto" como puede ver en el código a continuación. Sé que esto no funcionará, pero ¿cómo puedo configurarlo para que funcione?
using (DbContext db = new Context())
{
var items = db.Database.SqlQuery<object>(
"SP @Param1, @Param2",
new SqlParameter("Param1", ped),
new SqlParameter("Param2", 25)
).ToList();
return Request.CreateResponse<List<object>>(HttpStatusCode.OK, items);
}
EDITAR:
No sé si mostrar el SP ayudará de alguna manera, excepto si puedo explicarlo más.
Cada columna se representa como campos personalizados. Los usuarios pueden crear n números de campos personalizados. Entonces, si ejecuta el SP para el Usuario1 y tiene 5 campos personalizados, cada campo personalizado se representará en Columnas, pero si el Usuario2 tiene 3 campos personalizados, solo se representarán 3 columnas. Lo que no tengo control es el Nombre del campo personalizado y el número de campos personalizados.