Я создаю сайт для фильма. Я использую mvc3 и структуру сущности. Я использую в основном LINQ to Entities для запроса базы данных. графический интерфейс сайта - это в основном одна страница просмотра, которая рядом с первой загрузкой я использую главным образом Ajax для обновления списка фильмов в соответствии с критериями поиска и т. д. Поэтому я использую один основной запрос. когда я проверяю это в режиме отладки, я вижу, что каждый раз выполнение запроса занимает 10 секунд, что, конечно, очень медленно. Я проиндексировал базу данных в соответствии с моими базовыми знаниями. здесь основной код запроса:медленная работа с использованием linq 2 объекта
var casts = MovieCasts.Where(d =>
movieIds.Contains(d.MovieId)
&& d.WorkingTitleId != null &&
actorAndActressWtIds.Contains((int)d.WorkingTitleId)).AsEnumerable()
.Where(d=>GetMoviesTop4CelebIds(d.MovieId).Contains(d.CelebId))
.AsQueryable()
.Select(d =>new MCast
{
MovieId = d.MovieId,
Id = d.Id,
CelebId = d.CelebId,
CelebPageViews = d.Celebrity.PageViews,
ActingParts = string.Join(",",d.ActingParts.Select(e => e.Name)),
ActorName = HttpUtility.HtmlDecode(d.Celebrity.ShortName) ??
HttpUtility.HtmlDecode(d.Celebrity.BirthName),
}).ToList();
в GetMoviesTop4CelebIds() является функцией, которая приближается к базе данных напрямую и возвращает короткий список Int (celebId) в соответствии с фильмом Id. Вот почему я использовал первый AsEnumerable(), в противном случае он дал ошибку «LINQ to Entities не распознает метод и не может перевести ...» (забавная вещь, которую я должен упомянуть, это то, что мой код медленно работает в режиме отладки, когда я использовать точки останова и быстро, без него. Это находится в разработке. В производстве код очень медленный.) может ли кто-нибудь помочь мне затенять некоторый свет на код? Мне бы очень понравилось и нужно было улучшить производительность.
Оцените меня Я попробую –