Вместо того, чтобы пытаться использовать выражение запроса, я предлагаю вам использовать методы Where
, OrderBy
и ThenByDescending
напрямую. Например:
IQueryable<Testimonial> testimonials = MainModelDB.Testimonials;
if (!string.IsNullOrEmpty(statusCd))
{
testimonials = testimonials.Where(t => t.status == statusCd);
}
var ordered = testimonials.OrderBy(t => t.status == 'P' ?
1 : (t.status == 'A' ? 2 : 3))
.ThenByDescending(t => t.DateAdded);
Обратите внимание на использование ThenByDescending
вместо OrderByDescending
- в исходном запросе использовались два «первичных» порядка, что почти никогда не соответствует желаемому.
Я не совсем уверен, что предложение OrderBy
будет работать, но стоит попробовать. Если это не , скажите, что произойдет, вместо того, чтобы просто сказать "это не сработает".