Dans ce cas simple:NHibernate performances Paging (meilleure option)
public class Person
{
public int Id {get;set;}
public int Name {get;set;}
}
- J'ai besoin de générer une grille avec la pagination et la commande
- Ma base de données a environ 100k personnes
Qu'est-ce que l'option a de meilleures performances:
1) Obtenez tous elemtents la première fois et après prendre avantage de premier niveau NHibernate Cache, par exemple: de
personRep.FindAll().OrderBy(s =>s.Name).AsPagination(pageNumber,pageSize);
obs AsPagination est une méthode d'extension ...
2) Get la page réelle de la base de données, par exemple:
public virtual IList<T> GetPaginedList(int __pageIndex, int __pageSize,out int __total)
{
var _rowCount = Session.CreateCriteria(typeof(T))
.SetProjection(Projections.RowCount()).FutureValue<Int32>();
var _results = Session.CreateCriteria(typeof(T))
.SetFirstResult(__pageIndex * __pageSize)
.SetMaxResults(__pageSize)
.Future<T>();
__total = _rowCount.Value;
return _results;
}
Salut Frederik, Pourriez-vous me montrer comment "Importer" la vue et l'interroger?Merci – Paul
Salut Paul, j'ai répondu à une question similaire ici, avec un exemple de code: http://stackoverflow.com/questions/747382/only-get-latest-results-using-nhibernate –