linq-> SQL orderby下降不起作用

emr*_*ins 2 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();
Run Code Online (Sandbox Code Playgroud)

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

有任何想法吗?

我可以得到它,.OrderByDescending(...)但想知道这种疯狂背后的原因.

Atz*_*oya 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();
Run Code Online (Sandbox Code Playgroud)

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