Я немного растерялся из-за того, что одно из моих представлений ASP в моем приложении MVC работает так медленно.
Я выбираю некоторые данные с помощью linq в контроллере.Это выполняется быстро:
public ActionResult Progress(int ID)
{
var reviewitems = from ri in db.ReviewItems
where ri.Enrolment.Course.LearningArea.LearningAreaID == ID && ri.Review.ReviewSeries.StartDate < DateTime.Now && ri.Review.ReviewSeries.EndDate > DateTime.Now && ri.Progress < 2
select ri;
return View("Progress", reviewitems);
}
Затем я выполняю цикл foreach в представлении ASP, просматривая каждую строку данных типа 'reviewitem', которая была передана представлению.Опять же, это быстро:
<%foreach (var ri in Model)
{ %>
<tr>
<td><%= ri.Progress %></td>
</tr>
<%} %>
Мне нужно больше информации для отображения, поэтому мне нужно присоединиться к таблице «Обзор» (которая снова дает быстрые результаты), а затем к таблице «Студент».Вот где проблема, и она начинает занимать более 30 секунд:
<%foreach (var ri in Model)
{ %>
<tr>
<td><%= ri.Review.Student.Surname %></td>
</tr>
<%} %>
Каждый элемент рецензирования связан с одним уникальным студентом, поэтому я не понимаю, почему это занимает так много времени.У кого-нибудь есть идеи, откуда мне начать искать, почему это так медленно?Предположительно, это как-то связано с таблицей 'Student' (которая на самом деле является представлением SQL Server), но я могу выбрать все строки из нее за секунду, используя SQL?