У меня есть таблица в приложении ASP.NET MVC, которую я хочу сортировать (на стороне сервера) и фильтровать с помощью AJAX. Я хотел, чтобы его было довольно легко использовать в других местах, и мне не хотелось жестко программировать сортировку и фильтрацию в выражениях запросов, поэтому я искал способ динамического построения выражений, и лучший способ сделать это, как я нашел, был с помощью Dynamic LINQ. ,
Пользовательский ввод с URL-адреса, как показано ниже, напрямую вставляется в динамический Where или OrderBy.
/Orders?sortby=OrderID&order=desc&CustomerName=Microsoft
Это приведет к двум выражениям:
OrderBy("OrderID descending")
Where(@"CustomerName.Contains(""Microsoft"")")
Хотя я понимаю, что он не будет добавлен в базу данных напрямую, а вставка прямого SQL-кода здесь не сработает, потому что он не может быть отражен для свойства, и он безопасен от типа, и все, интересно, если кто-то еще Креатив, чем я мог найти способ использовать его независимо. Я могу подумать об одном из них - о том, что можно отсортировать / отфильтровать свойства, которые не видны в таблице, но это не так уж вредно, так как они все равно не будут отображаться, и это можно предотвратить с помощью хеширования.
Единственный способ разрешить прямой ввод данных пользователем - это OrderBy и Where.
Просто убедился, спасибо:)