J'ai un grand besoin d'aide.Les critères Nhibernate font une requête dynamique et obtiennent le nombre de lignes
Je fais requête dynamique en utilisant des critères:
ICriteria query = session.CreateCriteria(typeof(Employee));
if (searchOptions.FirstName != null)
{
query.Add(Expression.Eq("FirstName", searchOptions.FirstName));
}
if (!searchOptions.LastName != null)
{
query.Add(Expression.Eq("LastName", searchOptions.LastName));
}
if (searchOptions.PhoneNumber != null)
{
query.CreateCriteria("PhoneNumbers")
.Add(Expression.Like("Number", searchOptions.PhoneNumber + "%"));
}
Après cela, je dois avoir à la fois total Nombre de lignes et Pagination.
Pagination:
query.SetFirstResult(0).SetMaxResults(8);
pour rowcount:
query.SetProjection(Projections.RowCountInt64());
Comment puis-je exécuter à la fois dans une seule requête soit en utilisant une multicritère ou autre chose.
Aidez s'il vous plaît!
Avez-vous testé cela pour performance? Est-ce que cela l'améliore réellement, et de combien? –
Je vais répondre à ma propre question. La réponse courte, est-ce d'environ 25% -30% selon ayende. Voir http://ayende.com/Blog/archive/2009/04/27/nhibernate-futures.aspx –