开发者

Custom Sorting in Linq to Entities based on QueryString

开发者 https://www.devze.com 2023-04-07 10:38 出处:网络
Spent all day trying to find ready to use solution for \"Sort data in LINQ bases on Query String\" without any results.

Spent all day trying to find ready to use solution for "Sort data in LINQ bases on Query String" without any results.

SO, I have a LINQ query in action:

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);
}

From exmaple above:

1. perPage describe how many items we should show in page

2. orderBy DESC or ASC order 3. sortBy can be some field from ViewM开发者_C百科odel

I need to make somethisng like this:

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

Can somebody help me?

Thanks a lot!


You could use dynamic LINQ. Here's another example of implementing dynamic queries.


The page size is best handled by Take and Skip – LINQ to Entities will translate that in to SQL.

The parametrised sort can be done either by creating an expression tree based on the selected property and passing it to OrderBy or OrderByDescending as needed. Or by using Entity-LINQ building the SQL from the name of the field.

The latter apporoach needs to white-list the column names to avoid SQL Injection..

0

精彩评论

暂无评论...
验证码 换一张
取 消