با سلام
من کد زیر رو برای نمایش لیست دانش آموزان نوشتم:
var student = from u in talash.Users join s in talash.Tbl_StudentPayeh on u.Id equals s.StudentID_UserID_ join p in talash.Tbl_Payeha on s.PayehID equals p.PayehID where s.Active == true select new {u.Id, u.Pic,u.PNO,u.Name,u.Family,u.MelliCode,p.PayehName }; List<StudentsViewModel> StVM = new List<StudentsViewModel>(); for (int i = 0; i < student.Count(); i++) { StudentsViewModel st = new StudentsViewModel(); st.Family = student.ToArray()[i].Family; st.ID = student.ToArray()[i].Id; st.MelliCode = student.ToArray()[i].MelliCode; st.Name = student.ToArray()[i].Name; st.Paye = student.ToArray()[i].PayehName; st.Pic = student.ToArray()[i].Pic; st.PNO = student.ToArray()[i].PNO; StVM.Add(st); } ModelState.Clear(); return View(StVM);
حالا هر چه تعداد دانش آموزان بیشتر باشد زمان بیشتری طول می کشد تا ویو نمایش داده شود
لطفا راهنمایی نمایید که چکار کنم سرعت اینقدر کند نباشد.
با تشکر
اگر من بودن سمت Sql یک View درست میکردم و روی اون کوئری میزدم
استاد یعنی ویو سریعتر اجرا می شه؟
اگر امکان دارد کد سمت سرور و نحوه استفاده از ویو را با کد بگویید
با تشکر
بله ویو خیلی سریعتر هست
نمونه ندارم متاسفانه
سلام
من متوجه کد نویسیتون نشدم!!!
شما یه ViewModel ساختی بعد یه آرایه درنظر گرفتی بابت student تا بصورت لیست نشون بده؟
من اینجوری اینکارو انجام میدم البته اگه درست متوجه سوالتون شده باشم:
public PartialViewResult KartablStudent(string Reshte, int pageid = 1) { var psm = new ViewModel.StudentVM(); var q = from Vac in db.VacTimes join Org in db.TblOrganizations on Vac.OrganizationID equals Org.OrgID join vaz in db.Vaziats on Vac.Vaziat equals vaz.VaziatID join noe in db.MorakhasiType1 on Vac.VacType equals noe.MTypeID join taeid in db.Taeidkonandehs on Vac.TaeidKonandeh equals taeid.PersonID orderby Vac.VTimeID descending select new ViewModel.StudentVM { VTimeID= Vac.VTimeID, DarkhastDate=Vac.DarkhastDate, reshteID=Vac.reshteID, PersonName=Vac.PersonName, PersonFamily=Vac.PersonFamily, OrgName=Org.OrgName, TaeidKonandeh = taeid.PersonFullName, VacTypeName=noe.MorTypeName, MorakhasiDate=Vac.MorakhasiDate, TimeStart=Vac.TimeStart, TimeEnd=Vac.TimeEnd, TimeTotalString=Vac.TimeTotalString, TimeTotalInt=Vac.TimeTotalInt, Vaziat=vaz.VaziatName, Description=Vac.Description, VaziatID=vaz.VaziatID }; int skip = (pageid - 1) * 5; int Count = q.Count(); ViewBag.PageID = pageid; ViewBag.PageCount = Count / 5; q = q.Where(x => x.reshteID == Reshte).Skip(skip).Take(5); return PartialView(q.ToList()); }
استاد من با view نوشتم اما بازم دیر اجرا میشه:
var student = from t in talash.StudentLists select t; List<StudentsViewModel> StVM = new List<StudentsViewModel>(); for (int i = 0; i < student.Count(); i++) { StudentsViewModel st = new StudentsViewModel(); st.Family = student.ToArray()[i].Family; st.ID = student.ToArray()[i].Id; st.MelliCode = student.ToArray()[i].MelliCode; st.Name = student.ToArray()[i].Name; st.Paye = student.ToArray()[i].PayehName; st.Pic = student.ToArray()[i].Pic; st.PNO = student.ToArray()[i].PNO; StVM.Add(st); } ModelState.Clear(); return View(StVM);
لطفا راهنمایی نمایید
با تشکر
شما سرعت را در هاست بررسی کنید نه سیستم خودتون
چون تو سیستم شما در حالت Debug اجرا میشه و کمی کندتر است
استاد یعنی اینجوی که نوشتم سرعت چقدر بیشتر میشه؟
2 یا 3 برابر
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)