SQL 排序方式 - linq->SQL 排序按降序不起作用


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(...)一起工作,但我想知道这种疯狂背后的原因。

distinct在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(((方法将它们重新排列为一组新的不同的无序记录。

最新更新