Как вернуть динамический объект из SQL-запроса

У меня есть ситуация, когда storeprocdure возвращает коллекцию, но я не знаю, как структура объекта, потому что запрос очень динамичный.

Один запрос может вернуть:

Id | Расположение | MarketSegment | ... n столбцов

а другой может вернуться

Id | Торговый представитель | Расположение | Регион | ... n столбцов

Я просто просто возвращаю «объект», как вы можете видеть в коде ниже. Я знаю, что это не будет работать, но как я могу настроить это так?

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

РЕДАКТИРОВАТЬ:

Я не знаю, поможет ли показ SP в любом случае, кроме как, если я могу объяснить это больше.

Каждый столбец представлен как пользовательские поля. Пользователи могут создавать n номеров пользовательских полей. Таким образом, если вы запускаете SP для User1, и у него есть 5 настраиваемых полей, то каждое настраиваемое поле будет представлено в столбцах, но если у User2 есть 3 настраиваемых поля, будут представлены только 3 столбца. То, что я не могу контролировать, это имя настраиваемого поля и количество настраиваемых полей.

Ответы на вопрос(2)

Ваш ответ на вопрос