LINQ to Entities - несколько методов OrderBy не работают - PullRequest
10 голосов
/ 14 января 2011

Если я применяю два OrderBy метода к моему запросу, например,

query.OrderBy(rec => rec.Name).OrderByDescending(rec => rec.Title);

Тогда применяется только второй метод, первый игнорируется.Это ошибка?Что делать, если мне нужно иметь возрастающий порядок для одного столбца и нисходящий порядок для другого?Разве это не достижимо вообще синтаксисом метода?

1 Ответ

25 голосов
/ 14 января 2011

Попробуйте:

query.OrderBy(rec => rec.Name).ThenByDescending(rec => rec.Title);

Ваш второй OrderBy сбрасывает ваш первый набор результатов.Вот почему существует расширение ThenBy.Он сохранит ваш первый набор результатов, применяя к нему дополнительную сортировку.

По сути, ваше существующее решение в виде psuedo SQL будет выглядеть примерно так:т то, что вы хотите.Расширение ThenBy будет выглядеть примерно так:

results = SELECT * FROM Obj ORDER BY Name ASC, Title DESC
...