我是Linq的新手。我只是想知道如何使用c#表达式在Linq中按列位置进行排序。如果有可能请告诉我,或者不知道背后的原因是什么? 就像在Sql中一样
SELECT Title, FirstName, LastName
FROM Employees
ORDER BY 1,3
答案 0 :(得分:3)
这在LINQ中是不可能的,在SQL中也是不好的做法。只需指定要订购的列/属性。
等效的LINQ查询是:
employees.Select(x => new { x.Title, x.FirstName, x.LastName })
.OrderBy(x => x.Title)
.ThenBy(x => x.LastName);
或者在查询语法中:
from e in employees
order by e.Title, e.LastName
select new { x.Title, x.FirstName, x.LastName };
答案 1 :(得分:0)
不要太确定你的意思,但如果你的意思是:
SELECT Title, FirstName, LastName FROM Employees ORDER BY Title, LastName
然后你会这样做之一:
var results = from e in context.Employees
order by e.Title, e.Lastname
select e;
或
var results = context.Employees.OrderBy(e => e.Title).ThenBy(e => e.LastName)
未来使用的良好参考: