我如何将这个lamba语句作为Linq To Sql?

时间:2010-03-03 00:48:56

标签: c# .net linq-to-sql lambda

请问如何将ThenBy翻译为Linq-To-Sql

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

var movies = from m in _db.Movies
             orderby m.Category
             // What's the syntax for ThenBy?! 
             // thenby m.Name 
             select m;

当我尝试thenby m.Name时,我收到编译错误。

2 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:0)

除了一个简单的逗号分隔表达式列表(转换为ThenBy方法调用)之外,您还可以指定排序顺序:

var q = from m in db.Movies
        orderby m.Category descending, m.Name ascending 
        select m

// Translates to:
db.Movies.OrderByDescending(...).ThenBy(...)

另一个例子:

var q = from m in db.Movies
        orderby m.Category, m.Name descending
        select m

// Translates to:
db.Movies.OrderBy(...).ThenByDescending(...)

逗号分隔列表的第一个元素将转换为OrderByOrderByDescending(如果您指定descending关键字)。同样,下一个元素将转换为ThenByThenByDescending。您也可以编写ascending,但这是默认选项,因此它的行为方式与您不使用它的方式完全相同。