Результаты запроса не могут быть перечислены несколько раз?

успокойтесь, все Ваши файлы человечности находятся все еще тут же на Вашем диске. Основная причина этой проблемы состоит в том, что окна заменили загрузчик (личинка или grub2) на Вашем MBR. Все, что необходимо сделать, должно зафиксировать (переустанавливают) личинку, или grub2 (загрузчик можно просто рассмотреть как программу, которые приводят систему способ загрузить ОС).

просто не стесняются посещать ссылку, поскольку после, therea являются ТРЕМЯ способами возвратить Вашу личинку, но удостоверяться у Вас есть человечность живой CD, Вам нужен он для начальной загрузки к человечности сначала :D

https://help.ubuntu.com/community/RecoveringUbuntuAfterInstallingWindows

14
задан Ryan Versaw 1 September 2009 в 17:20
поделиться

3 ответа

Поскольку это выполняет хранимую процедуру, все ваши любимые Skip / Take в любом случае в значительной степени избыточны ... у него нет другого выбора, кроме как принести все данные обратно (вызовы хранимых процедур не компонуются). Единственное, что он может сделать, - это не материализовать объекты для некоторых из них.

Интересно, лучше ли было бы реорганизовать код для выполнения двух вызовов:

int result = repository.FullTextSearchCount(searchText);
var result = repository.FullTextSearch(searchText, skip, take); // or similar

т.е. сделать параметры подкачки частью SPROC (и чтобы фильтрация в базе данных с использованием ROW_NUMBER () / OVER (...) или табличных переменных, временных таблиц и т. д.) - или, альтернативно, что-то подобное с OUTPUT параметр в sproc:

int? count = null;
var result = repository.FullTextSearch(searchText, skip, take, ref count);

(я, кажется, помню, что OUTPUT становится ref , поскольку TSQL OUTPUT действительно ввод + вывод)

14
ответ дан 1 December 2019 в 07:19
поделиться

Что вы можете сделать, так это добавить вызов ToList () после репозитория . FullTextSearch (searchText) . Таким образом, результаты извлекаются с сервера, после чего вы можете делать с ними все, что захотите (поскольку теперь они загружены в память).

Сейчас вы пытаетесь выполнить один и тот же запрос SQL дважды, что довольно неэффективно.

17
ответ дан 1 December 2019 в 07:19
поделиться

Я бы посоветовал, если вам нужен счетчик, сначала выполнить результат. а затем запустите счетчик из самого списка, поскольку вы не используете resultsCount при выполнении результата.

var result = repository.FullTextSearch(searchText);
var ret = result.Skip((pageNumber - 1) * PageSize).Take(PageSize).ToList();
int resultsCount = ret.Count();
1
ответ дан 1 December 2019 в 07:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: