Как мне сделать это заявление lamba как Linq To Sql? - PullRequest
0 голосов
/ 03 марта 2010

как можно 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 ]

6 голосов
/ 03 марта 2010
var movies = from m in _db.Movies
         orderby m.Category, m.Name
         select m;
0 голосов
/ 03 марта 2010

В дополнение к простому списку выражений, разделенных запятыми (который переводится в 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, либо в ThenByDescending. Вы также можете написать ascending, но это опция по умолчанию, поэтому она ведет себя точно так же, как если бы вы ее не использовали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...