LINQ中的多个“order by”

我有两个表格, moviescategories ,我首先按类别ID获取有序列表,然后按名称

电影表有三列, ID,名称和CategoryID 。 类别表2具有列, ID和名称

我尝试了类似于以下的内容,但它不起作用。

var movies = _db.Movies.OrderBy( m => { m.CategoryID, m.Name })

这应该适合你:

var movies = _db.Movies.OrderBy(c => c.Category).ThenBy(n => n.Name)

使用非lambda,查询语法LINQ,你可以这样做:

var movies = from row in _db.Movies 
             orderby row.Category, row.Name
             select row;

[编辑解决评论]要控制排序顺序,使用关键字ascending (这是默认的,因此不是特别有用)或descending ,如下所示:

var movies = from row in _db.Movies 
             orderby row.Category descending, row.Name
             select row;

添新”:

var movies = _db.Movies.OrderBy( m => new { m.CategoryID, m.Name })

这对我的箱子有用。 它确实会返回可用于排序的内容。 它返回一个有两个值的对象。

类似但不同于按组合列排序,如下所示。

var movies = _db.Movies.OrderBy( m => (m.CategoryID.ToString() + m.Name))
链接地址: http://www.djcxy.com/p/5851.html

上一篇: Multiple "order by" in LINQ

下一篇: Preserving order with LINQ