【问题标题】:Custom Sorting in Linq to Entities based on QueryString基于QueryString的Linq to Entities自定义排序
【发布时间】:2011-09-24 18:16:08
【问题描述】:

花了一整天的时间试图找到“基于查询字符串在 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 or ASC order 3. sortBy 可以是 ViewModel 中的某个字段

我需要做这样的事情:

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

有人可以帮帮我吗?

非常感谢!

【问题讨论】:

标签: c# asp.net-mvc-3 entity-framework linq-to-entities


【解决方案1】:

您可以使用dynamic LINQ。这是实现动态查询的another example

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-30
      相关资源
      最近更新 更多