مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

ofoghcomputer

عضویت از 1393/07/15

راهنمایی در مورد نوع کد نویسی برای اجرای سریع

  • دوشنبه 17 آبان 1395
  • 16:52
تشکر میکنم

با سلام

من کد زیر رو برای نمایش لیست دانش آموزان نوشتم:

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);

حالا هر چه تعداد دانش آموزان بیشتر باشد زمان بیشتری طول می کشد تا ویو نمایش داده شود

لطفا راهنمایی نمایید که چکار کنم سرعت اینقدر کند نباشد.

با تشکر

پاسخ های این پرسش

تعداد پاسخ ها : 8 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • دوشنبه 17 آبان 1395
  • 17:55

اگر من بودن سمت Sql یک View درست میکردم و روی اون کوئری میزدم

کاربر سایت

ofoghcomputer

عضویت از 1393/07/15

  • دوشنبه 17 آبان 1395
  • 19:06

استاد یعنی ویو سریعتر اجرا می شه؟

اگر امکان دارد کد سمت سرور و نحوه استفاده از ویو را با کد بگویید

با تشکر

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • سه شنبه 18 آبان 1395
  • 09:46

بله ویو خیلی سریعتر هست

نمونه ندارم متاسفانه

کاربر سایت

kaveh.norozi

عضویت از 1394/11/30

  • سه شنبه 18 آبان 1395
  • 12:00

سلام

من متوجه کد نویسیتون نشدم!!!

شما یه 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());
        }

کاربر سایت

ofoghcomputer

عضویت از 1393/07/15

  • شنبه 22 آبان 1395
  • 11:19

استاد من با 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);

لطفا راهنمایی نمایید

با تشکر

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • شنبه 22 آبان 1395
  • 11:54

شما سرعت را در هاست بررسی کنید نه سیستم خودتون

چون تو سیستم شما در حالت Debug اجرا میشه و کمی کندتر است

کاربر سایت

ofoghcomputer

عضویت از 1393/07/15

  • شنبه 22 آبان 1395
  • 14:26

استاد یعنی اینجوی که نوشتم سرعت چقدر بیشتر میشه؟

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • شنبه 22 آبان 1395
  • 14:45

2 یا 3 برابر

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)