linq-> SQL orderby下降不起作用

时间:2011-06-21 20:03:09

标签: linq-to-entities sql-order-by

var Customer = (from c in DNAContextSQL.Customers
                                where c.LastName != ""
                                orderby c.PKID_Customer descending
                                select new
                                {
                                    c.PKID_Customer,
                                    c.OrganizationName,
                                    c.FirstName,
                                    c.LastName,
                                    c.Phone,
                                    c.Extension
                                }).Distinct().ToList();

我知道这是基本的。我发现它为什么不起作用,我找不到任何好的理由。发送到SQL事件探查器的查询似乎没有order by子句。

有什么想法吗?

我可以让它与.OrderByDescending(...)合作,但想知道这种疯狂背后的原因。

1 个答案:

答案 0 :(得分:5)

区别可能是通过在distinct()

之后调用orderBy来搞乱订单
var Customer = (from c in DNAContextSQL.Customers
                where c.LastName != ""
                select new
                   {
                      c.PKID_Customer,
                      c.OrganizationName,
                      c.FirstName,
                      c.LastName,
                      c.Phone,
                      c.Extension
                    }
                ).Distinct().OrderByDescending(c=>c.PKID_Customer).ToList();

这种情况正在发生,因为您首先选择一组由PKID_Customer排序的行(并且在调用distinct()方法之前对它们进行排序),之后Distinct()方法将它们重新排列为新的不同的无序行记录集。