The two are certainly different, The first one orders by the Code property
of ViewModel, and since that is not a mapped class, it can't be ordered by
the database. Use the second version.

/G


2013/12/26 Felipe Oriani <[email protected]>

> Thank you Guys,
>
> Gunnar, I will follow your tip, and if I have a Select in my query? Order
> could be before Select or after?
>
> query = query.Select(x => new ViewModel(x.Name, x.Code)).OrderBy(x =>
> x.Code).Take(10).ToList();
>
> or
>
> query = query.OrderBy(x => x.Code).Select(x => new ViewModel(x.Name,
> x.Code)).Take(10).ToList();
>
> or does not matter?
>
> Thank you.
>
>
>
>
> On Mon, Dec 23, 2013 at 7:13 PM, Gunnar Liljas <[email protected]>wrote:
>
>> You should do:
>>
>> var query = session.Query<Entity>();
>>
>> if (condition)
>> {
>>    query = query.Where(x => x.Name.StartWith("A"));
>> }
>>
>>
>> var result = query.OrderBy(x=>x.Name).Take(10).ToList();
>>
>> Everything before the ToList will be handled by the detabase.
>>
>> While adding the Take before anything else perhaps will work (due to
>> strange stuff), it's just wrong since it means:
>>
>> Take the first 10 entities from the table (in table/index order, i.e
>> irrelevant), and filter those by name. You may get zero results, even if
>> you have thousands of matching entities.
>>
>> Always order your results by something, to get predictable results.
>>
>> /G
>>
>>
>>
>> 2013/12/23 Allan Fagner <[email protected]>
>>
>>> Hi,
>>>
>>> I'm not sure if I'm following your question correctly. But here is the
>>> drill: the method ToList() is the trigger to sent your query to the
>>> database. Given the code you posted, that method will trigger a query more
>>> or less like that depending on the database:
>>>
>>> Select Top 10 From Entity Where Name Like "A%"
>>>
>>> Is that the best approach? I don't know. :) Only you can answer that.g
>>>
>>> --
>>> Allan Ferreira
>>> .NET Software Architect
>>> .NET Senior Consultant
>>> M: +55-41-98098597
>>> E: [email protected]
>>>
>>>
>>> On Mon, Dec 23, 2013 at 3:35 PM, Felipe Oriani 
>>> <[email protected]>wrote:
>>>
>>>> Hi friends.
>>>> I have a query like this:
>>>>
>>>>
>>>> -----------------
>>>>
>>>> var query = session.Query<Entity>().Take(100);
>>>>
>>>> if (condition)
>>>> {
>>>>    query = query.Where(x => x.Name.StartWith("A"));
>>>> }
>>>>
>>>> var result = query.ToList();
>>>>
>>>> -----------------
>>>>
>>>> I would like to know, if in the queryable Take method execute my query
>>>> before ToList() method?
>>>>
>>>> I want to know because I have more than 100 records in the table and it
>>>> is spread on database and it just take 10 records starting with "A". If
>>>> Yes, what is the best approuch to do it?
>>>>
>>>>
>>>> Thank you.
>>>>
>>>>
>>>> --
>>>> ______________________________________
>>>> Felipe B Oriani
>>>> felipeoriani.com.br [email protected]
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "nhusers" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to [email protected].
>>>> To post to this group, send email to [email protected].
>>>> Visit this group at http://groups.google.com/group/nhusers.
>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>
>>>
>>>  --
>>> You received this message because you are subscribed to the Google
>>> Groups "nhusers" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To post to this group, send email to [email protected].
>>> Visit this group at http://groups.google.com/group/nhusers.
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "nhusers" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at http://groups.google.com/group/nhusers.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>
>
>
> --
> ______________________________________
> Felipe B Oriani
> felipeoriani.com.br [email protected]
>
> --
> You received this message because you are subscribed to the Google Groups
> "nhusers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/nhusers.
> For more options, visit https://groups.google.com/groups/opt_out.
>

-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/nhusers.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to