多字段排序(orderby)

多字段排序(orderby)

orderby 后面跟多个字段,用逗号分隔,每个字段可指定 ascending(默认)或 descending

static void Main(string[] args)
{
    using (var dbContext = new DataClasses1DataContext())
    {
        var q = from u in dbContext.User
                orderby u.Name descending, u.Password ascending
                select u;
        var list = q.ToList();
    }
}Code language: JavaScript (javascript)

生成的 SQL:

SELECT [t0].[ID], [t0].[Name], [t0].[Password], [t0].[Status], [t0].[AddTime]
FROM [dbo].[User] AS [t0]
ORDER BY [t0].[Name] DESC, [t0].[Password]Code language: CSS (css)

写法说明:

写法等效 SQL
orderby u.Name descendingORDER BY Name DESC
orderby u.Name descending, u.Password ascendingORDER BY Name DESC, Password
不写方向(默认)ORDER BY 字段 ASC

关键要点:

要点说明
多字段排序逗号分隔,依次生效
排序方向descending 降序,ascending 升序(可省略)
执行位置翻译为 ORDER BY 子句,数据库端排序
方法语法dbContext.User.OrderByDescending(u => u.Name).ThenBy(u => u.Password)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注