Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将lamba语句作为Linq转换为Sql?_C#_.net_Linq To Sql_Lambda - Fatal编程技术网

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
。您也可以编写
升序
,但这是默认选项,因此它的行为方式与未使用它时完全相同