Дело не в том, что IComparer не поддерживается, а в том, что в Linq-to-Sql OrderBy () должен быть преобразован в операцию T-Sql.Если он позволяет вам указать критерии для сравнения, то для его использования SQL-сервер должен выполнить код C #.
Если вам нужно сделать что-то в Linq-To-Sql, которое не поддерживается, ночто может быть сделано в T-SQL, вы всегда можете обойти его, используя хранимую процедуру, которая прекрасно работает с Linq-to-Sql.Если это неудобно, вы можете вызвать метод ToList (), чтобы вызвать выполнение, а затем отсортировать его в памяти.Практичность этого зависит от размера данных и того, сколько из них вы хотите получить (например, при внедрении нумерации страниц).