Por ejemplo, quiero completar un control de vista de cuadrícula en una página web ASP.NET con solo los datos necesarios para el número de filas mostradas. ¿Cómo puede NHibernate apoyar esto?
.net
nhibernate
orm
pagination
Rayo
fuente
fuente
También puede aprovechar la función Futuros en NHibernate para ejecutar la consulta y obtener el recuento total de registros, así como los resultados reales en una sola consulta.
Ejemplo
Para obtener el recuento total de registros, haga lo siguiente:
Aquí encontrará una buena discusión sobre lo que le ofrecen los futuros .
fuente
Desde NHibernate 3 y superior, puede usar
QueryOver<T>
:Es posible que también desee ordenar explícitamente sus resultados de esta manera:
fuente
.Skip(PageNumber * PageSize)
de esta manera, si el tamaño de la página es 10, nunca recuperará las primeras 10 filas. Estoy editando para que la fórmula sea correcta. Suponiendo que conceptualmente,PageNumber
no debería ser 0. Debería ser mínimo 1.Cuando los datos de paginación, ¿hay otra forma de obtener un resultado escrito de MultiCriteria o todos hacen lo mismo como yo?
Gracias
fuente
¿Qué tal usar Linq para NHibernate como se explica en esta publicación de blog de Ayende?
Ejemplo de código:
Y aquí hay una publicación detallada del blog del equipo de NHibernate sobre Acceso a datos con NHibernate, incluida la implementación de paginación.
fuente
Lo más probable es que en un GridView desee mostrar una porción de datos más el número total de filas (recuento de filas) de la cantidad total de datos que coinciden con su consulta.
Debe usar una MultiQuery para enviar tanto la consulta Select count (*) como las consultas .SetFirstResult (n) .SetMaxResult (m) a su base de datos en una sola llamada.
Tenga en cuenta que el resultado será una lista que contiene 2 listas, una para el segmento de datos y otra para el recuento.
Ejemplo:
fuente
Sugiero que cree una estructura específica para lidiar con la paginación. Algo como (soy un programador de Java, pero debería ser fácil de mapear):
No proporcioné una implementación, pero podrías usar los métodos sugeridos por @Jon . Aquí tienes una buena discusión para que la eches un vistazo.
fuente
No necesita definir 2 criterios, puede definir uno y clonarlo. Para clonar los criterios de nHibernate, puede usar un código simple:
fuente