Answered by:
Order by not working?!?

Question
-
I have this following Entity Framework query:
orders = (From c In ef.Customers From o In c.Orders From i In o.Items Where (c.CustomerName = customerName) AndAlso (i.ItemName = itemName) Order By o.OrderNumber Select o}).Distinct.ToList()
The query works, but the weird thing is that the orders list being returned is not ordered.
Does anyone have an explantion as to why that is, or any suggestions of how to resolve the problem?
Richard
Wednesday, February 8, 2012 7:18 AM
Answers
-
Hi RichardR,
Welcome!
I think you can try to put "Order By" after "Select o"(... Select o).OrderBy(t=>t.OrderNumber).
Have a nice day.
Alan Chen[MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
- Marked as answer by RichardR Wednesday, February 8, 2012 10:37 PM
Wednesday, February 8, 2012 8:58 AM
All replies
-
Hi RichardR,
Welcome!
I think you can try to put "Order By" after "Select o"(... Select o).OrderBy(t=>t.OrderNumber).
Have a nice day.
Alan Chen[MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
- Marked as answer by RichardR Wednesday, February 8, 2012 10:37 PM
Wednesday, February 8, 2012 8:58 AM -
Hi,
The key point to keep in mind is that distinct is done by sorting and keeping unique rows so you just sort again the rows and your first order by may appear to have no effect at all. So use distinct first and then only add your order by clause...
Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
Wednesday, February 8, 2012 9:31 AM -
Thanks. That apparently did it.
Actually, for anyone else doing VB, the query statement ended up as:
orders = (From c In ef.Customers From o In c.Orders From i In o.Items Where (c.CustomerName = customerName) AndAlso (i.ItemName = itemName) Select o}).Distinct.OrderBy(Function(o) o.OrderNumber).ToList()
Wednesday, February 8, 2012 10:42 PM