Mam ten fragment kodu pracuję z:Szczegółowe zakres pozycji listy (LINQ)
// get the collection of librarys from the injected repository
librarySearchResults = _librarySearchRepository.GetLibraries(searchTerm);
// map the collection into a collection of LibrarySearchResultsViewModel view models
libraryModel.LibrarySearchResults =
librarySearchResults.Select(
library =>
new LibrarySearchResultsViewModel
{
Name = library.Name,
Consortium = library.Consortium,
Distance = library.Distance,
NavigateUrl = _librarySearchRepository.GetUrlFromBranchId(library.BranchID),
BranchID = library.BranchID
}).ToList();
Wszystko to nie jest podjąć wyniki GetLibraries(searchTerm)
, która zwraca listę LibrarySearchResult
obiektów i zamienia je na listę LibrarySearchResultsViewModel
.
Chociaż działa to dobrze w przypadku małych zestawów wyników, po tym, jak dostanę się do 1000, naprawdę zaczyna się przeciągać, co zajmuje około 12 sekund, zanim zakończy konwersję.
Moje pytanie:
Ponieważ używam stronicowania tutaj, naprawdę tylko trzeba wyświetlić część danych, które jest zwracane w dużym zestawie wyników. Czy istnieje sposób użycia czegoś takiego jak Take()
lub GetRange()
, aby konwersja zachodziła tylko dla rekordów, które muszę wyświetlić? Wypowiedz na 1000 rekordów, chcę tylko uzyskać zapisy od 20 do 40 i przekonwertować je na modele widoku.
Jestem za wszelkie sugestie dotyczące poprawy lub refaktoryzacji tego kodu, jak również.
Zobacz najczęściej zadawane pytania dotyczące podpisów. http://stackoverflow.com/help/behavior W szczególności 'Nie używaj podpisu, sloganu ani pozdrowienia. Każdy wpis jest już "podpisany" standardową kartą użytkownika, która prowadzi bezpośrednio do strony użytkownika. Jeśli użyjesz dodatkowego podpisu lub sloganu, zostanie on usunięty, aby zmniejszyć hałas w pytaniach i odpowiedziach. " – cadrell0
Cieszę się, że mogę pomóc. Zalecamy przeczytanie Najczęściej zadawanych pytań w całości, aby upewnić się, że postępujesz zgodnie ze wskazówkami dla społeczności. Polecam również ten post na meta, aby uzyskać więcej informacji. http://meta.stackexchange.com/questions/7931/faq-for-stack-exchange-sites – cadrell0