Linq to sql linq到sql中的自定义orderby
我已经搜索了归档文件,但找不到适用于linq to sql的解决方案 如何在LINQtoSQL中创建自定义orderby,以便它生成如下sql代码Linq to sql linq到sql中的自定义orderby,linq-to-sql,Linq To Sql,我已经搜索了归档文件,但找不到适用于linq to sql的解决方案 如何在LINQtoSQL中创建自定义orderby,以便它生成如下sql代码 ORDER BY CASE SEASON WHEN 'WINTER' THEN 1 WHEN 'SPRING' THEN 2 WHEN 'SUMMER' THEN 3 WHEN 'AUTUMN' THEN 4 END 请注意,自定义比较器似乎无法编译,本教程中所述的OrderByWeight似乎不存在 注 我希望排序在sql ser
ORDER BY
CASE SEASON
WHEN 'WINTER' THEN 1
WHEN 'SPRING' THEN 2
WHEN 'SUMMER' THEN 3
WHEN 'AUTUMN' THEN 4
END
请注意,自定义比较器似乎无法编译,本教程中所述的OrderByWeight似乎不存在
注
我希望排序在sql server上进行,而不是在c中进行,因为这会给我不同的结果,因为我正在对结果进行分区。您必须像以前一样首先在内部循环中选择数据,然后从该结果中选择数据,并在自定义列上正常排序: 从我头上
from s in
(from x in y select new { Sort = x.z == 'WINTER' ? 1 : x.z == 'SPRING' ? 2 : [...], Data = x })
orderby s.Sort
select s.Data
诸如此类
希望这有帮助这里有一个使用lambda表达式的方法
+1,因为我相信这将实际编译成一个案例。你的解决方案是有意义的。谢谢只是LINQtoSQL似乎不喜欢使用不属于原始数据源的变量。请记住,我希望在SQL server上使用已经存在的字段完成案例,因此排序值不太有效。但逻辑是有道理的。
MyTable
.OrderBy (t => (t.Season == "Winter") ? 1 : (t.Season == "Spring") ? 2 : [...])
.Select (
t => new
{
MyColumn = t.MyColumn
...
}
)