Ответ 1
Используйте свойства Date
и TimeOfDay
для сортировки.
return query
.OrderByDescending(c=> c.Time.Date)
.ThenBy(c=> c.Time.TimeOfDay);
Это быстрый.
В Linq to sql мне нужно заказывать по дате времени по убыванию, а затем упорядочить по времени часть того же самого datetime, зарегистрированного по возрастанию, иметь смысл? Вот пример нужного результата:
[Серийный] [Дата (mm-dd-yyyy: hh-MM-ss)]
1 3-13-2008: 10-10-02
2 3-13-2008: 10-12-60
3 3-12-2008: 12-05-55
Я пробовал:
return query.OrderByDescending(c=> c.Time).ThenBy(c=> c.Time.TimeOfDay);
А также попробовал:
query.OrderByDescending(c => c.Time).ThenBy(c => c.Time.Hour).ThenBy(c=> c.Time.Minute).ThenBy(c=> c.Time.Second);
но никогда не работал.
Любые предложения?
Используйте свойства Date
и TimeOfDay
для сортировки.
return query
.OrderByDescending(c=> c.Time.Date)
.ThenBy(c=> c.Time.TimeOfDay);
Проблема заключается в том, что "Время" содержит информацию о дате и времени, таким образом, уже полностью сортируется. Вам нужно будет сначала выполнить сортировку даты.
return query.OrderByDescending(c=> c.Time.Date).ThenBy(c=> c.Time.TimeOfDay);
Не тестировалось:)
Я думаю, что first orderByDescending сортирует все по дате (дата + время), поэтому следующие orderbys вступят в силу только в том случае, если у вас есть записи с одинаковой меткой времени.
Попробуйте это
query.OrderByDescending(c=> c.Time.Date).ThenBy(c=> c.Time.TimeOfDay)
Поверните его, чтобы тики тоже будут работать:
return query.OrderByDescending(c=> c.Time.Ticks)