Como retornar um objeto dinâmico da consulta SQL
Eu tenho uma situação em que um procedimento de loja retorna uma coleção, mas não como a estrutura do objeto porque a consulta é muito dinâmica.
Uma consulta pode retornar:
Id | Localização | MarketSegment | ... n colunas
e outro pode retornar
Id | Representante de vendas | Localização | Região | ... n colunas
Estou simplesmente retornando um "objeto", como você pode ver no código abaixo. Sei que isso não vai funcionar, mas como posso configurá-lo?
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:
Não sei se mostrar o SP ajudará de qualquer maneira, exceto se eu puder explicar mais.
Cada coluna é representada como campos personalizados. Os usuários podem criar n números de campos personalizados. Portanto, se você executar o SP para Usuário1 e ele tiver 5 campos personalizados, cada um deles será representado em Colunas, mas se o Usuário2 tiver 3 campos personalizados, apenas 3 colunas serão representadas. O que eu não tenho controle é o nome do campo personalizado e o número de campos personalizados.