如恶化自定义函数Expression转化为sql
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要介绍"如恶化自定义函数Expression转化为sql",在日常操作中,相信很多人在如恶化自定义函数Expression转化为sql问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作
千家信息网最后更新 2026年10月31日如恶化自定义函数Expression转化为sql
这篇文章主要介绍"如恶化自定义函数Expression转化为sql",在日常操作中,相信很多人在如恶化自定义函数Expression转化为sql问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"如恶化自定义函数Expression转化为sql"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
一.首先建立一个建一个扩展类,控制只能允许这些函数出现,如果出现其他函数就直接报异常。
1 public static class SQLMethods 2 { 3 public static bool DB_In(this T t, List list) // in 4 { 5 return true; 6 } 7 public static Boolean DB_NotIn(this T t, List list) // not in 8 { 9 return true;10 }11 public static int DB_Length(this string t) // len();12 {13 return 0;14 }15 public static bool DB_Like(this string t, string str) // like16 {17 return true;18 }19 public static bool DB_NotLike(this string t, string str) // not like 20 {21 return true;22 }23 } View Code
我们要生成sql,那么函数的返回值没有意思,len() ,like,和not 只能针对字符串类型, in 和not in 可以针对所有类型。
二.处理不同函数相关的逻辑。
1.判断函数所在类的命名空间是否我是我们要求的。
2.根据函数名处理。出现意外函数抛出异常
代码如下"
1 private string DealMethodsCall(MethodCallExpression m_exp) 2 { 3 var k = m_exp; 4 var g = k.Arguments[0]; 5 /// 控制函数所在类名。 6 if (k.Method.DeclaringType != typeof(SQLMethods)) 7 { 8 throw new Exception("无法识别函数"); 9 }10 switch (k.Method.Name)11 {12 case "DB_Length":13 {14 var exp = k.Arguments[0];15 return "LEN(" + Deal_Expression(exp) + ")";16 }17 case "DB_In":18 case "DB_NotIn":19 {20 var exp1 = k.Arguments[0];21 var exp2 = k.Arguments[1];22 string methods = string.Empty;23 if (k.Method.Name == "In")24 {25 methods = " IN ";26 }27 else28 {29 methods = " NOT IN ";30 }31 return Deal_Expression(exp1) + methods + Deal_Expression(exp2);32 }33 case "DB_Like":34 case "DB_NotLike":35 {36 var exp1 = k.Arguments[0];37 var exp2 = k.Arguments[1];38 string methods = string.Empty;39 if (k.Method.Name == "DB_Like")40 {41 methods = " LIKE ";42 }43 else44 {45 methods = " NOT LIKE ";46 }47 return Deal_Expression(exp1) + methods + Deal_Expression(exp2);48 49 } 50 }51 /// 未知的函数52 throw new Exception("意外的函数");53 }处理相关函数
三. 调试结果

到此,关于"如恶化自定义函数Expression转化为sql"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
函数
学习
处理
意外
所在
更多
类型
帮助
控制
不同
实用
接下来
代码
字符
字符串
意思
文章
方法
理论
知识
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
河南云网互联网络科技有限公司
高科技与互联网
中国 科技 互联网
互联网科技股票
顺玮阁互联网科技
互联网 科技服务平台
互联网公司会议桌创意科技软装饰
济南华为互联网科技产业总部基地
随着互联网科技发展
承德科技产业互联网发展
现代互联网科技股
燊美集互联网科技有限公司
企晟互联网信息科技有限公司
玉溪新华互联网科技好不好
区块链结合互联网科技
元气玛特互联网科技公司是外包吗
小米互联网科技园入驻
互联网科技资金流入
中国互联网公司的科技投入
宁波允成互联网科技有限公司
互联网科技图片
互联网科技公司的优势
互联网最新的科技有限公司
科技信息互联网
上海致骋互联网科技
海南购全球互联网科技
富国互联网科技创新基金
互联网相关科技技术
半导体是互联网高科技吗
互联网金融金融科技