我有一个 MVC3 应用程序,它使用分离成不同层的 POCO 类。我也实现了一个通用的回购模式。
我有一个仪表板,它使用 Kendo UI 图表进行管理以查看实时统计信息。随着数据库的增长,仪表板越来越慢。我找到了这些原因:
- 记录每天都在增长
- 每个图表调用 repo 以获取所有行以使用 LINQ 计算统计信息
- Automapper 正在将我的模型创建为视图模型
我想通过使用数据库中的存储过程来准确获取统计数据所需的数字来加快这一速度。我不确定我应该如何实现这个......即使感觉很不对劲!有小费吗?
带有回购代码的示例控制器
Public Class DashboardController
Inherits BaseController
Private ticketRepo As MaintenanceTicketsRepository
Public Sub New()
Me.ticketRepo = New MaintenanceTicketsRepository(New TicketContext)
End Sub
Function Chart_OpenItems() As ActionResult
Dim tickets As IList(Of MaintenanceTicket) = ticketRepo.GetAll().Include(Function(p) p.Priority).Include(Function(s) s.Status).OrderBy(Function(o) o.PriorityId).ToArray()
'Do some work with repo then dispose'
End Function
Function Chart_ClosedItems() As ActionResult
Dim tickets As IList(Of MaintenanceTicket) = ticketRepo.GetAll().Include(Function(p) p.Priority).Include(Function(s) s.Status).OrderBy(Function(o) o.PriorityId).ToArray()
'Do some work with repo then dispose'
End Function
End Class