I'm just thinking* it might be easier to do this with HQL Diego
*: I didn't try On Wed, Feb 17, 2010 at 15:03, Scott White <[email protected]> wrote: > Using version 2.1.0.4 > Since the following code clears the projection before adding the > rowcount as a projection if the target query had Group By clauses > these will be lost and affect the count returned. The rowcount will > be much higher than expected: > > public static ICriteria TransformToRowCount(ICriteria > criteria) > { > return > TransformToRowCount((CriteriaImpl)criteria.Clone()); > } > > private static CriteriaImpl TransformToRowCount(CriteriaImpl > criteria) > { > criteria.ClearOrders(); > > > criteria.SetFirstResult(0).SetMaxResults(RowSelection.NoValue).SetProjection(Projections.RowCount()); > return criteria; > } > > > Example: > var criteria = session.CreateCriteria(typeof(Cat)) > .SetProjection( Projections.ProjectionList() > .Add( Projections.Avg("Weight") ) > .Add( Projections.Max("Weight") ) > .Add( Projections.GroupProperty("Color") )) > > var itemCountCrit = > CriteriaTransformer.TransformToRowCount(criteria); > > // works > var list = criteria > .SetFirstResult(filter.CurrentPageIndex * > filter.ItemsPerPage) > .SetMaxResults(filter.ItemsPerPage) > .Future<T>(); > > // will return a number that is too high since the > projections above will be stripped > var resultCount = itemCountCrit.FutureValue<int>(); > > > I'm working on a couple of workarounds or fixes any ideas or thoughts > are appreicated. > > -- > You received this message because you are subscribed to the Google Groups > "nhusers" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<nhusers%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/nhusers?hl=en. > > -- You received this message because you are subscribed to the Google Groups "nhusers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/nhusers?hl=en.
