如何使字符串在linq语句中按顺序首先出现

How to make string appear first in order by in linq statement

如何使用 Linq 执行以下 SQL 语句?

SELECT * FROM myTable
ORDER BY 
CASE myColumnName
WHEN 'Cats' THEN 1
WHEN 'Bear' THEN 2
ELSE 99
END, myColumnName

如果 myColumnName 包含一个动物列表,我想按该列排序,但希望猫在结果中首先出现,然后是熊,是否可以使用 Linq 语句执行此操作?

直接翻译可能是这样的:

myTable
    .OrderBy(t => 
        t.MyColumnName == "Cats" ? 1
        : t.MyColumnName == "Bears" ? 2
        : 99)
    .ThenBy(t => t.MyColumnName)

类似于:

var res = from p in context.myTable
          let oOrder = ( p.myColumnName == "Cats" ? 1 :
                         p.myColumnName == "Bear" ? 2 : 99)
          orderby oOrder, p.myColumnName
          select p;