Как сделать заказ по нескольким столбцам, используя лямбда-выражения VB.Net - PullRequest
18 голосов
/ 16 ноября 2009

Я провел краткий поиск по этому сайту, и погуглил, но не могу найти хорошего примера. Я все еще пытаюсь разобраться со всем этим "Лямбда-выражениями".

Может ли кто-нибудь здесь привести пример упорядочения по нескольким столбцам с использованием VB.Net и Linq-to-SQL с использованием лямбда-выражения?

Вот мой существующий код, который возвращает упорядоченный список, используя один столбец для упорядочения результатов:

Return _dbContext.WebCategories.OrderBy(Function(c As WebCategory) c.DisplayOrder).ToList

Примечание. Объект WebCategory имеет дочерний объект WebPage (на основе внешнего ключа). Я хотел бы сначала заказать по WebPage.DisplayOrder, а затем по WebCategory.DisplayOrder.

Я попытался объединить байты в порядке, как показано ниже, и, хотя он компилировался и работал, похоже, он не возвращал данные в нужном мне порядке.

Return _dbContext.WebCategories.OrderBy(Function(c As WebCategory) c.DisplayOrder).OrderBy(Function(c As WebCategory) c.WebPage.DisplayOrder).ToList

Заранее спасибо.

Ответы [ 2 ]

41 голосов
/ 16 ноября 2009

Я нашел эту статью MSDN в быстром поиске Google. Я думаю, что вы ищете это:

Return _dbContext.WebCategories.OrderBy(Function(c As WebCategory) c.DisplayOrder). _
ThenBy(Function(c As WebCategory) c.WebPage.DisplayOrder).ToList
13 голосов
/ 16 ноября 2009

Вы должны использовать ThenBy следующим образом:

Return _dbContext.WebCategories.OrderBy(Function(c As WebCategory) c.DisplayOrder) _
                               .ThenBy(Function(c As WebCategory) c.WebPage.DisplayOrder) _
                               .ToList()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...