如恶化自定义函数Expression转化为sql
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要介绍"如恶化自定义函数Expression转化为sql",在日常操作中,相信很多人在如恶化自定义函数Expression转化为sql问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作
千家信息网最后更新 2025年11月07日如恶化自定义函数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安全错误
数据库的锁怎样保障安全
黄冈市网络安全活动
车身电子软件开发
怎样打开数据库
做我的世界服务器
工厂数据库初始化
网易版服务器怎么查看种子号
idc机房服务器的硬盘尺寸
苏州系统软件开发哪家可靠
魔兽世界tbc人最多的服务器
联想st258服务器参数
软件开发行业毕业后能干什么
数组元素遍历添加到数据库
英魂之刃其他服务器
如何选择好的协同软件开发
威纶通配方数据库怎么插入
虾壳网络技术
HCNA网络技术期末考试
运行数据库电脑配置
服务器软件技术有哪些
常见的网络安全有哪些方面
贴吧软件开发
欧盟网络安全战略发布
四川精品网络技术有限公司
车务段有数据库吗
厦门加固服务器哪家价格便宜
宝山区高科技网络技术哪家强
软件开发公司一体机电脑
杭州最好的外贸数据库获取渠道
言炎网络技术
电大数据库应用技术实验