Golden Basim Ответов: 1

EF6 упорядочить результаты на основе пользовательских значений


привет,
мой проект был создан с использованием c# & entity framwork 6
у меня есть эта таблица (записи), которая имеет статус поданный
статус подано заполнится одним из этих значений :
Ожидание,Принятие,Отклонение,Задержка,Завершение

я хочу получить всю запись отсортированную по этим условиям:-
Сначала принятые строки, затем отложенные строки, затем отложенные, а завершенные и отклоненные последние.

Что я уже пробовал:

var Query = DB1.entries.Where(u=> u.date >= From && u.date <= To && statusList.Contains( u.Status)).Select(s => new entires
            {
                ID = s.id,
                Name = s.Name,
                date = s.date,
                Order = s.order,
                Topic = s.Topic,
                ExternalVisitor = s.ExternalVisitor == 1 ? true : false,
                Reason = s.Reason,
                waiting = s.waiting,
                Status = s.Status,
               
            }).OrderBy(o => o.Status == "pending").ThenByDescending(o => o.date).ToList();

1 Ответов

Рейтинг:
1

Gerry Schmitz

...OrderBy( o => 

switch( o.Status ) {
   case "Accepted": return 1;
   case "Pending": return 2;
   ...
   default: return 6;
} )
.ThenBy ... etc.


Golden Basim

я попробовал это сделать, но, похоже, он не принимает писать switch внутри orderby(). строка ошибки появляется под кодом.
Ошибка CS1026 ) ожидаемая
Ошибка CS1525 недопустимый термин выражения 'switch'
Ошибка CS0127 поскольку 'Entries.fillGrid()' возвращает void, ключевое слово return не должно сопровождаться выражением объекта