Я создаю веб-приложение, которое позволяет пользователям выбирать из 20 различных баз данных с сотнями таблиц. Пользователь будет выбирать из нескольких различных вариантов, и при отправке создается строка подключения, которая передается в класс запроса, где набор данных затем возвращается обратно в контроллер. Я сохраняю набор данных в Viewbag ViewBag.results = ds.Tables[0];
. Выполнение запроса выполняется очень быстро, как и ожидалось, но я сталкиваюсь с узким местом в создании таблицы данных в представлении.
Столбцы данных будут разными для каждого выполняемого запроса, поэтому я решил использовать метод ниже.
<table id="results" class="table table-striped">
<thead class="thead-light">
<tr>
@foreach (DataColumn column in ViewBag.results.Columns)
{
<th scope="col">@column.ColumnName</th>
}
</tr>
</thead>
<tbody>
@foreach (DataRow row in ViewBag.results.Rows)
{
<tr>
@foreach (DataColumn column in ViewBag.results.Columns)
{
<td scope="row">@row[column.ColumnName]</td>
}
</tr>
}
</tbody>
</table>
Я выполняю запрос с ограничением 20, и загрузка представления занимает более 20 секунд.