У меня есть следующий запрос Linq. его работы хорошо, но то, что кажется запутанным, - это то, как работает skip()
и take()
. вот мой запросКак пропустить и выполнить работы в linq
(from GRD in _tblAcademicYears.GetQueryable()
where GRD.SchoolID == intSchoolID
select new AcademicYearsModel
{
AcademicYearID = GRD.AcademicYearID,
SchoolID = GRD.SchoolID,
AcademicYearName = GRD.AcademicYearName,
AcademicYearStart = GRD.AcademicYearStart,
AcademicYearEnd = GRD.AcademicYearEnd,
AcademicYearRemarks = GRD.AcademicYearRemarks,
IsActive = GRD.IsActive,
CreatedOn = GRD.CreatedOn,
CreatedBy = GRD.CreatedBy,
ModifiedOn = GRD.ModifiedOn,
ModifiedBy = GRD.ModifiedBy
}
).Where(z => z.AcademicYearName.Contains(param.sSearch) || z.AcademicYearStart.ToString().Contains(param.sSearch)
|| z.AcademicYearEnd.ToString().Contains(param.sSearch) || z.AcademicYearRemarks.Contains(param.sSearch))
.Skip(param.iDisplayStart).Take(param.iDisplayLength).ToList();
Как этот запрос будет получить запись из базы данных. он получит всю запись из базы данных, а затем применит skip()
и take()
. или это будет просто получить запись, которые с в пределах skip()
и take()
Это берете записи из базы данных в соответствии с вашим запросом и сохраняйте его как запрошенным, а затем применяйте пропуски и переходите к конкретным данным. –
. Что произойдет, будет зависеть от специфики используемого вами поставщика запросов, в дополнение к спецификации выполняемый. Зарегистрируйте сгенерированный запрос, чтобы узнать, что на самом деле происходит. – Servy