AScript之LINQ扩展
AScript是一个开源的C#动态脚本解析执行引擎,提供了LINQ脚本扩展功能。
IQueryable扩展

IEnumerable扩展

示例1:
1 var list = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; 2 var result = list.WhereScript(x => "x % 2 == 0").ToList(); 3 // 结果:2,4,6,8,10
示例2:
动态脚本中注入变量和函数
1 var context = new ScriptContext(); 2 context.SetVar("n", 3); 3 context.AddFunc<int, bool>("isOdd", a => a % 2 == 1); 4 var list = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; 5 // 被3整除并且是奇数 6 var result = list.WhereScript(x => "x % n == 0 && isOdd(x)", context).ToList(); 7 // 结果:3,9
示例3:
动态脚本使用Sql语言
1 var context = new ScriptContext(); 2 // 指定sql脚本语言 3 context.Lang = SqlLang.Instance; 4 context.SetVar("n", 3); 5 context.AddFunc<int, bool>("isOdd", a => a % 2 == 1); 6 var list = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; 7 // 被3整除并且是奇数,SQL语法 8 var result = list.WhereScript(x => "x % n = 0 and isOdd(x)", context).ToList(); 9 // 结果:3,9
应用场景
前端动态添加查询条件,勾选查询字段、比较方式(等于、大于、小于)、填写数据,后端根据前端传的条件动态拼接查询字符串,但是查询使用ORM,此时AScript LINQ扩展就派上用场了。
大家项目中是如何处理LINQ查询中动态拼接查询条件的呢?
nuget安装包:install-package AScript
开源地址:


浙公网安备 33010602011771号