• Nhibernate, Paging, Count(*), OrderBy и производительность?

    Smileek
    @Smileek
    Постраничный вывод:
    return Session.CreateCriteria<T>()
    .AddOrder(Order.Asc("Id"))
    .SetFirstResult((pageNumber - 1) * pageSize)
    .SetMaxResults(pageSize)
    .List();
    


    Count:
    return (int) session.CreateCriteria<T>()
    .SetProjection(Projections.Count("Id")); // Любое поле
    .UniqueResult();
    


    Более эстетичный вариант с NHibernate 3.0
    Paging:
    return Session.QueryOver<T>()
    .OrderBy(x => x.Id).Asc
    .Take(pageSize)
    .Skip((pageNumber - 1) * pageSize)
    .List();
    


    Count:
    return Session.QueryOver<T>().RowCount();
    
    Ответ написан
    Комментировать