Как вы можете выполнять пейджинг с помощью NHibernate?

Вы также можете воспользоваться .net-framework функцией Futures в NHibernate .net для выполнения запроса, чтобы dot-net получить общее количество nhibernate записей, а также фактические .net-framework результаты в одном запросе.

Пример

 // Get the total row count in the database.
var rowCount = this.Session.CreateCriteria(typeof(EventLogEntry))
    .Add(Expression.Between("Timestamp", startDate, endDate))
    .SetProjection(Projections.RowCount()).FutureValue();

// Get the actual log entries, respecting the paging.
var results = this.Session.CreateCriteria(typeof(EventLogEntry))
    .Add(Expression.Between("Timestamp", startDate, endDate))
    .SetFirstResult(pageIndex * pageSize)
    .SetMaxResults(pageSize)
    .Future();

Чтобы orm получить общее количество nhibernate записей, выполните следующие dotnet действия:

int iRowCount = rowCount.Value;

Хорошее обсуждение object-relational-mapping того, что дают вам фьючерсы, - это nhibernate here.

.net

nhibernate

orm

pagination

2022-09-25T13:59:33+00:00