使用和存储列表中的数据[英] Using and storing the data of list

问题描述

我正在开发一个 MVC3 应用程序,但我遇到了数据检索问题.我有一个数据列表,每次都需要填充它.我已经设法获取数据并存储在列表中,但对我来说问题是我用来填充数据的 StoreProc 本身很慢,我需要一次又一次地运行 proc.我只需要将列表的数据存储在某处并全局访问它,这样我就不需要一次又一次地运行相同的过程.我必须使用相同的过程来填充具有不同视图的数据.这个我试过了.


我在 LIST
中创建了一个模型类并填充了数据

公开列表<ScheduleVO> GetScheduling(int?EmployeeId, string day){List<GetSchedulingResult> schObj =pdb.GetScheduling(EmployeeId, null, null).ToList();List<ScheduleVO> scheduleObj =新列表<ScheduleVO>();foreach (var stTime in schObj.GroupBy(x => x.StartTime)){GetSchedulingResult objSchedulingResult = schObj.Where(x => x.StartTime == stTime.Key).FirstOrDefault();DateTime dtStartTime = Convert.ToDateTime(objSchedulingResult.StartTime).Date;if (day == "今天"){if (dtStartTime == DateTime.Now.Date){ScheduleVO vo = 新的 ScheduleVO();尝试{vo.scheduled = DateTime.Parse(objSchedulingResult.StartTime.ToString());vo.ProviderName = objSchedulingResult.ProviderName;vo.Address = objSchedulingResult.Address;vo.Contact = objSchedulingResult.ContactName;vo.Phone = objSchedulingResult.ContactInfo;vo.AssignmentID = int.Parse(objSchedulingResult.Assignments_ID.ToString());}抓住 { }scheduleObj.Add(vo);}




公开列表<AssignmentVO> GetAssignment(int? EmpId, DateTime date, string day){List<AssignmentVO> AssignObj =新列表<AssignmentVO>();if (day == "今天" || day == "明天"){List<GetSchedulingResult> schObj =pdb.GetScheduling(EmpId, null, null).ToList();AssignObj = schObj.Where(x => x.StartTime == date).Select(y => new AssignmentVO() { ItemId = y.WorkItem_ID, Provider = y.ProviderName, HICN = y.HICNumber, Patient = y.PatientsName, DOB = DateTime.Parse(y.DOB.ToString()), Excludes = "之前的图表" + y.NoIncludeCodingYearDisplayText }).ToList();}else if (day == "Previous"){List<GetPrevSchedulingResult> schObj =pdb.GetPrevScheduling(EmpId, null, null).ToList();AssignObj = schObj.Where(x => x.StartTime == date).Select(y => new AssignmentVO() { ItemId = y.WorkItem_ID, Provider = y.ProviderName, HICN = y.HICNumber, Patient = y.PatientsName, DOB = DateTime.Parse(y.DOB.ToString()), Excludes = "之前的图表" + y.NoIncludeCodingYearDisplayText }).ToList();}返回AssignObj;




现在我只想对列表的结果进行分组并以不同的方式显示结果,例如我用日期过滤数据.但是为此我再次连接到数据库并制作了一个列表然后访问了数据.我不想使用这种方法,因为它耗时且效率不高.有什么建议可以在全球范围内使用列表数据吗?让我们不要一次又一次地列出列表.

推荐答案

我猜你可以将它存储在会话中.理想情况下,使用 MVC3,您应该使用实体框架.你也应该考虑看看你的存储过程并修复它,如果它太慢的话.

本文地址:https://www.itbaoku.cn/post/1395058.html