Na przykład chcę wypełnić formant widoku siatki na stronie sieci Web ASP.NET tylko danymi niezbędnymi dla wyświetlonej liczby wierszy. Jak NHibernate może to wspierać?
.net
nhibernate
orm
pagination
Promień
źródło
źródło
Możesz również skorzystać z funkcji Futures w NHibernate, aby wykonać zapytanie w celu uzyskania całkowitej liczby rekordów, a także rzeczywistych wyników w pojedynczym zapytaniu.
Przykład
Aby uzyskać całkowitą liczbę rekordów, wykonaj następujące czynności:
Dobrym dyskusja co Futures dać to tutaj .
źródło
Od NHibernate 3 i nowszych możesz użyć
QueryOver<T>
:Możesz również jawnie uporządkować wyniki w następujący sposób:
źródło
.Skip(PageNumber * PageSize)
w ten sposób, jeśli rozmiar strony to 10, nigdy nie pobierze pierwszych 10 wierszy. Edytuję, aby poprawić formułę. Zakładając, że koncepcyjniePageNumber
nie powinno być 0. Powinno być minimum 1.Czy podczas stronicowania danych istnieje inny sposób uzyskania wpisanego wyniku z MultiCriteria, czy też wszyscy robią to samo, tak jak ja?
Dzięki
źródło
Co powiesz na użycie Linq do NHibernate, jak omówiono w tym poście na blogu Ayende?
Przykład kodu:
A oto szczegółowy post blogu zespołu NHibernate na temat dostępu do danych z NHibernate, w tym implementacji stronicowania.
źródło
Najprawdopodobniej w GridView będziesz chciał wyświetlić wycinek danych oraz łączną liczbę wierszy (rowcount) z łącznej ilości danych, które pasują do zapytania.
Powinieneś użyć MultiQuery, aby wysłać zarówno zapytanie Select count (*), jak i .SetFirstResult (n) .SetMaxResult (m) do bazy danych w jednym wywołaniu.
Zwróć uwagę, że wynikiem będzie lista zawierająca 2 listy, jedną dla wycinka danych i jedną dla liczby.
Przykład:
źródło
Proponuję stworzyć specjalną strukturę zajmującą się paginacją. Coś takiego (jestem programistą Java, ale to powinno być łatwe do zmapowania):
Nie dostarczyłem implementacji, ale możesz użyć metod sugerowanych przez @Jon . Oto dobra dyskusja do obejrzenia.
źródło
Nie musisz definiować 2 kryteriów, możesz zdefiniować jedno i sklonować. Aby sklonować kryteria nHibernate, możesz użyć prostego kodu:
źródło