Выборочная сортировка в Linq для объектов на основе QueryString - PullRequest
0 голосов
/ 24 сентября 2011

Потратил весь день, пытаясь найти готовое решение для «Сортировать данные в базах LINQ по строке запроса» без каких-либо результатов.

ТАК, у меня есть запрос LINQ в действии:

public AcrionResult MyAction(int perPage = 10, string orderBy = "DESC", sting sortBy = "id")
{
    var some = from m in db.Some select new ExampleModel {id = m.id, some = m.some};
    return View(some);
}

Из приведенного выше примера:
1. perPage описывает, сколько элементов мы должны показать на странице
2. orderBy DESC или ASC order 3. sortBy может быть некоторым полем из ViewModel

Мне нужносделайте что-то вроде этого:

var query = some.OrderFilter (...). AmountFilter (...). SortByFilter (...)

Может кто-нибудь мне помочь?

Большое спасибо!

Ответы [ 2 ]

2 голосов
/ 24 сентября 2011

Вы можете использовать динамический LINQ . Вот другой пример реализации динамических запросов.

0 голосов
/ 24 сентября 2011

Размер страницы лучше всего обрабатывается Take и Skip - LINQ to Entities преобразует это в SQL.

Параметризованная сортировка можетэто можно сделать, создав дерево выражений на основе выбранного свойства и передав его в OrderBy или OrderByDescending при необходимости.Или используя Entity-LINQ для построения SQL-кода из имени поля.

Последнему пользователю необходимо составить белый список имен столбцов, чтобы избежать SQL-инъекций.

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