我是Linq的新手。我只想知道如何在 Linq 中使用 c# 表达式按列位置排序。如果可能,请告诉我,如果不是,那么背后的原因是什么?就像在 Sql 中一样
SELECT Title, FirstName, LastName
FROM Employees
ORDER BY 1,3
我是Linq的新手。我只想知道如何在 Linq 中使用 c# 表达式按列位置排序。如果可能,请告诉我,如果不是,那么背后的原因是什么?就像在 Sql 中一样
SELECT Title, FirstName, LastName
FROM Employees
ORDER BY 1,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 };
不完全确定您的意思,但如果您的意思是:
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)
未来使用的一个很好的参考: