Я пытаюсь достичь функциональности поиска более чем на 10 тысяч записей. Это связано с проблемами скорости при использовании PagedList.PagedList Search, страдающий от неэффективности
public ActionResult CrmBlogGroupType(int? page, bool? Name, bool? AuthorTitle, bool? Description, string search, int? PageSize, string type)
{
try
{
if (type==null)
{
type = "A";
}
IEnumerable<Usp_getBlogSetPosts_Result> _objBlogSet = _dataLayer.GetBlogSet(type);
//The above _objBlogSet has around 10 thousand records
ViewBag.CurrentPage = page;
ViewBag.Name = Name ==null?false:Name;
ViewBag.AuthorTitle = AuthorTitle == null ? false : AuthorTitle;
ViewBag.Description = Description == null ? false : Description;
ViewBag.Search = search;
ViewBag.type = type;
if (Name == true && AuthorTitle == false && Description == false)
{
_objBlogSet = _objBlogSet.Where(p => p.author_name.ToLower().Contains(search.ToLower())).ToPagedList(page ?? 1, PageSize ?? 10);
}
return View(_objBlogSet);
catch (Exception ex)
{
throw ex;
}
}
общественного List Get_MVP_Consultants() { List obj_Consultants = _dbContext.Tbl_MVPConsultant.Where (р => p.Visibility == TRUE) .ToList(); return obj_Consultants; } Выше описан метод Datalayer, где я получаю данные. Как я могу изменить этот код на IQueryable .. –
Dathatreya
не конвертировать этот список. Как только вы это сделаете, db получает удар, и все возвращается. – lusocoding
Hi @lusocoding Я следил за вашим советом и изменил метод Datalayer, чтобы вернуть IQueryable Result .. Но метод ToPagedList() не позволяет Iqueryable Result .. Как продолжить сейчас. – Dathatreya