在linq到sql中自定义orderby

The*_*heo 7 linq-to-sql

我已经搜索了档案,但找不到适用于linq到sql的解决方案.

如何在linq中创建自定义orderby到sql,以便它生成这样的SQL代码

ORDER BY
CASE SEASON
  WHEN 'WINTER' THEN 1
  WHEN 'SPRING' THEN 2
  WHEN 'SUMMER' THEN 3
  WHEN 'AUTUMN' THEN 4
END
Run Code Online (Sandbox Code Playgroud)

请注意,自定义比较器似乎没有编译和OrderByWeight,如本教程中所示(http://www.skindog.co.uk/2009/03/18/custom-sorting-order-in-linq-order-by-weighting/)似乎不存在

注意

我希望订单发生在sql server而不是c#中,因为这会给我不同的结果,因为我正在对结果进行分区.

Ran*_*der 12

这是一种使用lambda表达式的方法


MyTable
   .OrderBy (t => (t.Season == "Winter") ? 1 : (t.Season == "Spring") ? 2 : [...])
   .Select (
      t => new
{ MyColumn = t.MyColumn ... } )