I\'m using EF 4.3.1... just upgraded to 4.4 (problem remains) with database-first POCO entities generated by the EF 4.x DbContext Generator. I have the following
As in the prev answer I tried to reason about the problem - I resigned, and I'm writing another one:) After looking at it again, I think it is a bug. I think you should just use Take and post the case to Microsoft's Connect and check what do they say about it.
Here's what I have found: http://connect.microsoft.com/VisualStudio/feedback/details/658392/linq-to-entities-orderby-is-lost-when-followed-by-firstordefault
The response from 'Microsoft 2011-09-22 at 16:07' describes in details some optimizing mechanisms inside EF. In a few places they say about reordering skip/take/orderby and that sometimes the logic does not recognize some constructs.. I think you have just stumbled upon another corner case that is not-yet-branched properly in the 'orderby lifting'. All in all, in the resulting SQL you have select-top-1 inside an order-by, and the damage looks exactly like lifting the 'top 1' one level too high!