Используя EF, вам понадобятся классы для результатов. Вот пример, в котором я вызываю SPro c, чтобы поместить несколько строк в класс с именем Visits. Обратите внимание на порядок параметров в массиве. Если вы хотите указать параметр по имени, используйте @ Sort=@Sort:
public virtual DbSet<Visits> SP_Visits { get; set; }
SqlParameter[] parameters = {
new SqlParameter("DateFrom", dateFrom),
new SqlParameter("DateTo", dateTo),
new SqlParameter("Aggregation", aggregation),
new SqlParameter("Sort", sort)
};
return await SP_Visits.FromSqlRaw("EXECUTE dbo.sp_Visits @DateFrom, @DateTo, @Aggregation, @Sort", parameters).ToListAsync();
. Если вам нравятся закодированные классы, это простое и безопасное решение. Если вы хотите иметь что-то абсолютно динамичное c, подумайте о DataTable. вот как это работает в простом случае, когда вы отображаете таблицу значений из любого SPro c:
Вызовите свой SPro c с необходимыми параметрами и, используя SqlDataReader, выгружаете содержимое в DataTable.
Создайте общее частичное представление, которое принимает данные в качестве модели. Итерируйте столбцы, чтобы получить количество столбцов таблицы, и в каждом установите текст заголовка таблицы. Итерируйте строки и столбцы, чтобы отображать значения для каждого столбца для каждой строки