ROTOLF!!!!!

2010/3/7 Richard Brown (gmail) <[email protected]>

>  Of course.  Done.
>
>
> IQueryOver<User> userQuery =
>   mySession.QueryOver<User>()
>     ...
>     .OrderBy(u => u.LastName).Asc
>     .Skip(page * pageSize)
>     .Take(pageSize);
>
> IList<User> users = userQuery.List();
> int usersCount = userQuery.RowCount();
>
>
> (And I should have done that the first time too!)
>
>  *From:* Fabio Maulo <[email protected]>
> *Sent:* Sunday, March 07, 2010 3:26 AM
> *To:* [email protected]
> *Subject:* Re: [nhusers] Re: QueryOver issues
>
> Richard,
> why not a IQueryOver method or an extension method ?
> var usersQuery =
>
>   mySession.QueryOver<User>()
>       ...
>       .OrderBy(x => x.LastName).Asc
>       .Skip(page * pageSize)
>       .Take(pageSize);
>
> var count = usersQuery.Count();
> or
> var count = usersQuery.RowCount();
>
> 2010/3/6 Richard Brown (gmail) <[email protected]>
>
>> Hi Adam,
>>
>> There's now a QueryOverTransformer in the trunk code, so you can write:
>>
>> var usersQuery =
>>
>>   mySession.QueryOver<User>()
>>       ...
>>       .OrderBy(x => x.LastName).Asc
>>       .Skip(page * pageSize)
>>       .Take(pageSize);
>>
>> var pagedUsers = usersQuery.List();
>>
>> var count =
>>   QueryOverTransformer.TransformToRowCount(usersQuery)
>>       .UniqueResult<int>();
>>
>> Sorry for the delay in implementing it.
>>
>>
>> Richard
>>
>> --------------------------------------------------
>> From: "Schotime" <[email protected]>
>> Sent: Saturday, February 13, 2010 10:32 AM
>>
>> To: "nhusers" <[email protected]>
>> Subject: [nhusers] Re: QueryOver issues
>>
>>
>> That makes sense.
>>> This would be a pretty common scenario i would think.
>>>
>>> Thanks for the reply.
>>>
>>> Adam
>>>
>>> On Feb 13, 9:11 pm, "Richard Brown \(gmail\)"
>>> <[email protected]> wrote:
>>>
>>>> Hi Adam,
>>>>
>>>> The short answer is 'yes'.  QueryOver behaves the same as ICriteria in
>>>> this
>>>> example ... adding conditions to the query changes the query itself.
>>>>
>>>> ICriteria has a corresponding CriteriaTransformer class which can be
>>>> used to
>>>> clone the criteria for exactly this sort of thing.  I'll have a think
>>>> and
>>>> see if we need a QueryOverTransformer class to do something similar.
>>>>
>>>> IQueryOver does allow you access to the underlying ICriteria, so one
>>>> option
>>>> might be to do something like this:
>>>>
>>>> var users =
>>>>    mySession.QueryOver<User>()
>>>>        ...
>>>>        .OrderBy(x => x.LastName).Asc
>>>>        .Skip(page * pageSize)
>>>>        .Take(pageSize);
>>>>
>>>> var pagedUsers = users.List();
>>>>
>>>> var count =
>>>>    CriteriaTransformer.Clone(users.UnderlyingCriteria)
>>>>        .ClearOrders()
>>>>        .SetProjection(Projections.RowCount())
>>>>        .UniqueResult<int>();
>>>>
>>>> Hope that helps, and I'll see about getting a QueryOverTransformer (and
>>>> probably IQueryOver.ClearOrders()) added to NH.
>>>>
>>>> Richard
>>>>
>>>> --------------------------------------------------
>>>> From: "Schotime" <[email protected]>
>>>> Sent: Friday, February 12, 2010 9:45 PM
>>>> To: "nhusers" <[email protected]>
>>>> Subject: [nhusers] QueryOver issues
>>>>
>>>>
>>>>
>>>> > Was trying out the new QueryOver since Linq doesn't have fetch yet,
>>>> > but i received a different response than expected.
>>>>
>>>> >            var users =
>>>> > MvcApplication.SessionFactory.GetCurrentSession()
>>>> >                .QueryOver<User>().Fetch(x=>x.Roles).Eager;
>>>>
>>>> >            if (!_userSession.IsUserInRole(UserRoles.Superuser))
>>>> >                users = users.Where(x => x.Company == user.Company);
>>>>
>>>> >            int count =
>>>> > users.Select(Projections.Count("id")).UniqueResult<int>();
>>>>
>>>> >            var pagedUsers = users.OrderBy(x =>
>>>> > x.LastName).Asc.Skip(page * pageSize).Take(pageSize).List();
>>>>
>>>> > to which i receive this error
>>>>
>>>> > Column "Users.LastName" is invalid in the ORDER BY clause because it
>>>> > is not contained in either an aggregate function or the GROUP BY
>>>> > clause.
>>>>
>>>> > Now in linq this runs too queries but it looks like QueryOver doesn't
>>>> > return the instance, but modifies the existing one. Is this correct?
>>>> > Do i need to repeat some logic to get the count as well?
>>>>
>>>> > Adam
>>>>
>>>> > --
>>>> > 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]<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]<nhusers%[email protected]>
>> .
>> For more options, visit this group at
>> http://groups.google.com/group/nhusers?hl=en.
>>
>>
>
>
> --
> Fabio Maulo
>
> --
> 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]<nhusers%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/nhusers?hl=en.
>



-- 
Fabio Maulo

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