基于QueryString的Linq对实体的自定义排序

本文关键字:自定义 排序 实体 Linq QueryString 基于 | 更新日期: 2023-09-27 18:09:36

花了一整天的时间试图找到准备使用的解决方案"在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. DESC或ASC订单3.sortBy可以是ViewModel

中的某个字段

我需要这样写:

查询var = some.OrderFilter(…).AmountFilter(…).SortByFilter(…)

有人能帮我吗?

非常感谢!

基于QueryString的Linq对实体的自定义排序

您可以使用动态LINQ。下面是实现动态查询的另一个示例:

页面大小最好由TakeSkip处理- LINQ to Entities会将其转换为SQL。

参数化排序可以通过基于所选属性创建表达式树并根据需要将其传递给OrderByOrderByDescending来完成。或者使用Entity-LINQ从字段的名称构建SQL。

后一种方法需要将列名列入白名单,以避免SQL注入。