![]() |
|
Модераторы: gambit |
![]()
|
|
| Лен |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 20.1.2009 Репутация: нет Всего: нет |
Пусть есть некий класс MwfDocument с кучей полей. Пусть есть некий IQueryable<MwfDocument>. Нужно отсортировать его по нескольким полям. В результате некоторых умственных измышлений пришёл к такому варианту:
В итоге получился запрос, который я не могу привести по техническим причинам, но его Expression.ToString() выглядит так: value(System.Data.Objects.ObjectQuery`1[BlankPublish.Entity.WorkflowDocument]).Where(doc => (Convert(doc.RawStatus) = 10)).Where(doc => ((Convert(doc.SubjectOwner.SubjectID) = null) || (doc.SubjectOwner.SubjectID = value(BlankPublish.Entity.Filters.SearchFilterDocuments).SubjectOwnerID))).OrderBy(x => x.DocumentDate).OrderBy(x => x.DocumentNumber) SQL Profiler показывает, что EntityFramework, через который идёт работа, отправляет на сервер такой запрос:
ORDER BY [Project1].[DocumentNumber] - почему сортировка идёт только по одному полю? (аналогичная ситуация у меня была и при сортировке по трём полям) Что и как сделать, чтобы правильно отсортировать по нескольким полям? Это сообщение отредактировал(а) Лен - 17.7.2009, 16:12 |
||||
|
|||||
| WarHog |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 20.10.2007 Где: Воронеж Репутация: 1 Всего: 2 |
Привет, в случае нескольких ключей, по которым должна идти сортировка, нужно воспользоваться сначала OrderBy, а затем ThenBy, примерно так:
--------------------
|
|||
|
||||
| Лен |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 20.1.2009 Репутация: нет Всего: нет |
Спасибо, очень помогло. Только один нюанс:
при вызове ThenBy() queryable (типа IQueryable<T>) надо приводить к IOrderedQueryable<T>. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | LINQ (Language-Integrated Query) | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |