小编Chr*_*ris的帖子

MVC应用程序中的表连接速度非常慢

我有点不知道为什么我的MVC应用程序中的一个ASP视图运行得如此之慢.

我在控制器中使用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);


        }
Run Code Online (Sandbox Code Playgroud)

然后我在ASP视图中执行foreach循环,遍历已经传递给视图的'reviewitem'类型的数据的每一行.这很快:

<%foreach (var ri in Model)
  {  %>
<tr>
<td><%= ri.Progress %></td>
</tr>
<%} %>   
Run Code Online (Sandbox Code Playgroud)

我需要显示更多信息,因此我需要加入"评论"表(再次提供快速结果),然后加入"学生"表.这就是问题所在,开始耗时超过30秒:

 <%foreach (var ri in Model)
  {  %>
<tr>
<td><%= ri.Review.Student.Surname %></td>
</tr>
<%} %>   
Run Code Online (Sandbox Code Playgroud)

每个评论项目链接到一个独特的学生,所以我不明白为什么这么长时间.有没有人有任何想法,我应该开始寻找为什么它这么慢?据推测它与'Student'表(实际上是一个SQL Server视图)有关,但我可以使用SQL在一秒钟内从中选择所有行?

c# sql asp.net-mvc linq-to-sql database-performance

1
推荐指数
1
解决办法
533
查看次数

标签 统计

asp.net-mvc ×1

c# ×1

database-performance ×1

linq-to-sql ×1

sql ×1