LINQ中的多个“order by”
我有两个表格, movies
和categories
,我首先按类别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