linq-> SQL-порядок по убыванию не работает - PullRequest
2 голосов
/ 22 июня 2011
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 Profiler, похоже, не содержат в себе предложения order by.

Есть идеи?

Я могу заставить его работать с .OrderByDescending(...), но хотел бы знатьпричина этого безумия.

1 Ответ

5 голосов
/ 22 июня 2011

Отличное, вероятно, испортило порядок, попробуйте вызвать 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 (и ониупорядочены до тех пор, пока вы не вызовете метод Different ()), и после этого метод Distinct () перегруппирует их в новый отдельный неупорядоченный набор записей.

...