C# 如何将lamba语句作为Linq转换为Sql?
如何将C# 如何将lamba语句作为Linq转换为Sql?,c#,.net,linq-to-sql,lambda,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
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
时,我得到了一个编译器错误。除了一个简单的逗号分隔的表达式列表(它被转换为thenby
方法调用),您还可以指定排序顺序:
var movies = from m in _db.Movies
orderby m.Category, m.Name
select m;
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(...)
逗号分隔列表的第一个元素被转换为
OrderBy
或OrderByDescending
(如果指定descending
关键字)。类似地,接下来的元素被转换为ThenBy
或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(...)
逗号分隔列表的第一个元素被转换为OrderBy
或OrderByDescending
(如果指定descending
关键字)。类似地,接下来的元素被转换为ThenBy
或ThenBy
。您也可以编写升序
,但这是默认选项,因此它的行为方式与未使用它时完全相同