如何使字符串在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;
如何使用 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;