У нас много проблем с командой .ToList, она используется в VB.NET с веб-проектом MVC ASP.NET.
В нашей базе данных ~ 2000 записей, мы используем команду LINQ, чтобы ВЫБРАТЬ и ЗАКАЗАТЬ 2000 записей. Результат преобразуется в список методом .ToList для нашего пейджера и построителя сетки. Проблема в том, что .ToList занимает WAY WAY TOO долго (мы говорим 40-60 секунд, чтобы выполнить), поэтому наши сайты выглядят медленными как ад.
Мы протестировали эквивалентную команду SQL в базе данных, и она быстро отвечает. Это не проблема с командами или медленным сервером базы данных. Мы пробовали IEnumrable witch, который был намного быстрее, но нам нужен он в формате .ToList в конце для наших сеток. Что за сделка с .ToList? Что-нибудь, что мы можем сделать?
Вот код:
'list = (From c In _entities.XXXXXXXXSet.Include("XXXXXX").Include("XXXXXX") _
Where Not (c.XXXXXX Is Nothing AndAlso c.XXXXXX = String.Empty) _
And c.XXXXXX = codeClient _
And c.XXXXXX > dateLimite _
Order By c.XXXXXX Descending _
Select c).ToList()
Мы разделили код и оставили в покое только функцию .ToList, и это действительно то, что высасывает все время. Команда LINQ выполняется в кратчайшие сроки.
Большое спасибо.
Том