System.Linq.Dynamic.Core 用于进行创建动态的查询表达式
github: https://github.com/StefH/System.Linq.Dynamic.Core/wiki/Dynamic-Expressions#the-parselambda-methods
数据:
var data = new List<Student>() { new Student() { Id = 1, Name = "A1", Age = 1, Date = new DateTime(2018,01,01) }, new Student() { Id = 2, Name = "B2", Age = 2, Date = new DateTime(2018,02,01) }, new Student() { Id = 3, Name = "C3", Age = 3, Date = new DateTime(2018,03,01) }, new Student() { Id = 4, Name = "D4", Age = 4, Date = new DateTime(2018,04,01) }, };
直接传字符串进行简单的查询
var query = data .AsQueryable() .Where("Age>2&&Age<3") .OrderBy("Age descending"); var result = query.ToDynamicList<Student>();
如果碰到Date等不太好用字符串表达的形式 可以使用传入参数来解决
var query = data .AsQueryable() .Where("Date>@0", new DateTime(2018,02,01)) .OrderBy("Age descending"); var result = query.ToDynamicList<Student>();