Я использую сетку mvc telerik в моем проекте mvc, у моего стола около 1 миллиона записей. Моя сетка занимает слишком много времени для загрузки.Mvc Telerik grid С большой базой данных
Это мой запрос //
var bib = (from a in db.Bibs
join inf in db.InfoTypes
on a.InfoTypeId equals inf.Id
where a.Status == "A"
select new BibViewModel
{
Id = a.Id,
Type = inf.Type,
InfoType = inf.Description,
Title = (from asd in db.BibContents where asd.BibId == a.Id && asd.TagNo == "245" && asd.Sfld == "a" select asd.Value).FirstOrDefault(),
Author = (from asd in db.BibContents where asd.BibId == a.Id && asd.TagNo == "100" && asd.Sfld == "a" select asd.Value).FirstOrDefault(),
CatalogueDate = a.CatalogDate,
Contents = "",
CreatedOn = a.CreatedOn,
ItemRelation = db.Items.Any(item => item.BibId == a.Id),
IssueRelation = db.Issues.Any(item => item.BibId == a.Id),
});
return View(new GridModel(bib.OrderByDescending(x => x.CreatedOn).Tolist()));
У вас сумасшедшая серия объединений и вложенных поисков. Одна вещь, которую я замечаю, заключается в том, что вы сохраняете Status как строковый тип данных, который гораздо более требовательный, чем использование int вместо этого. Если вы удалите предложение where, где a.Status == «A» и вместо этого берете 10000 строк с «take 10000», выполняется ли оно быстрее? Просто предложение, которое может привести вас к решению. – OakNinja
На самом деле мой запрос не занимает много времени. Мой запрос возврата занимает много времени, чтобы вернуть bcoj. Я использую Tolist. Если я удаляю список, то у меня есть другая ошибка «как Time Out Server Error» –