I suspect you'll need both the paged query and the count.

See the discussion here:

http://groups.google.com/group/nhusers/msg/0bcda99c81248e17
http://groups.google.com/group/nhusers/browse_thread/thread/16c296414aedc09d

There's also a method on IQueryOver called ToRowCountQuery() that will clone 
the query, remove the paging, and project the rowcount, allowing you to use 
futures too:

myPagedQuery
    .ToRowCountQuery()
    .Future<int>();

  From: Mohamed Meligy 
  Sent: Tuesday, March 23, 2010 7:51 AM
  To: [email protected] 
  Subject: Re: [nhusers] How do I get row count using the NHibernate QueryOver 
api?


  I think you just need to make the call (Count) BEFORE the paging code (Take, 
Skip).

  --
  Mohamed Meligy
  Senior Developer, Team Lead Backup (.Net Technologies - TDG - Applications)
  Injazat Data Systems
  P.O. Box: 8230 Abu Dhabi, UAE.

  Phone:  +971 2 6992700
  Direct:   +971 2 4045385
  Mobile:  +971 50 2623624, +971 55 2017 621

  E-mail: [email protected]
  Weblog: http://gurustop.net



  On Mon, Mar 22, 2010 at 4:04 PM, Jim Geurts <[email protected]> wrote:

    HI all,

    I'm using the QueryOver api that is part of NHibernate 3.x. I would
    like to get a row count, but the method I'm using returns all objects
    and then gets the count of the collection. Is there a way to just
    return an integer/long value of the number of rows without returning
    all of the row data?

    I'm currently using:

    _session.QueryOver<MyObject>().Future().Count()

    if it matters, that call is being used right after one like:

    _session.QueryOver<MyObject>().Skip(pageId-1 *
    PageSize).Take(PageSize).Future();

    Thanks for any help with this,

    Jim


    --
    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.





  -- 
  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.

-- 
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.

Reply via email to