.net 利用Emit将object转为DbParameter,DataTable转为List<>
先放测试结果图,测试的方法是拷贝了老赵的一个简单的性能计数器:CodeTimer。发现速度还是比利用反射来获取快了2倍左右的,将object转为DbParameter的反射方法我没写。
在开发中,由于没有用第三方的orm框架,导致和数据库交互这里需要写很多的代码来拼接DbParameter。还有就是需要利用反射将DataTable转为List<>,在性能上会有点偏低。
所以我就花了几个礼拜时间看了下Emit,然后简单的实现了下一些自己常用的功能。大家如果觉得可以,可以直接下载代码拿去使用,如果发现哪里不对的或者有更好的实现方法的,欢迎指正与讨论。
使用说明:
//将Object转为paramList,SqlParameter是指DbParameter类型,三个参数,第一个参数是object,第二个参数是参数符号(@,:,?),第三个参数是前缀
var paramList = DbParamUtil.ToDbParam<SqlParameter>(new User(), "@", "w_");//
//将table转为对应List<T>, tableInstance是你需要转换的table,User是你要转换的实体类型
tableInstance.ToList<User>();
//将DataRow转为实体,dataRowInstance是你需要转换的DataRow,User是你要转换的实体类型
dataRowInstance.ToEntity<User>();
源码下载:
github地址:https://github.com/yjqGitHub/EmitConvert.git
后期如果有时间,且实现了ioc,也会在这个地址更新
作者:yjq
欢迎任何形式的转载,但请务必注明出处。
.netcore相关功能需要定制的可以找我。有丰富的并发处理,性能优化经验。单点登录,限流,熔断,读写分离等功能均可定制。也可以帮忙系统优化处理,系统诊断,请联系博主(备注添加原因)。微信:yjq425527169 QQ:425527169
本篇文章如有些许帮助请点击推荐让更多需要帮助的人可以看到,请支持原创,请大方打赏(右边点击打赏)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?