.net 利用Emit将object转为DbParameter,DataTable转为List<>

  先放测试结果图,测试的方法是拷贝了老赵的一个简单的性能计数器:CodeTimer。发现速度仍是比利用反射来获取快了2倍左右的,将object转为DbParameter的反射方法我没写。html

                                                              

在开发中,因为没有用第三方的orm框架,致使和数据库交互这里须要写不少的代码来拼接DbParameter。还有就是须要利用反射将DataTable转为List<>,在性能上会有点偏低。git

因此我就花了几个礼拜时间看了下Emit,而后简单的实现了下一些本身经常使用的功能。你们若是以为能够,能够直接下载代码拿去使用,若是发现哪里不对的或者有更好的实现方法的,欢迎指正与讨论。github

使用说明:数据库

   //将Object转为paramList,SqlParameter是指DbParameter类型,三个参数,第一个参数是object,第二个参数是参数符号(@,:,?),第三个参数是前缀框架

   var paramList = DbParamUtil.ToDbParam<SqlParameter>(new User(), "@", "w_");//post

  //将table转为对应List<T>, tableInstance是你须要转换的table,User是你要转换的实体类型性能

   tableInstance.ToList<User>();测试

  //将DataRow转为实体,dataRowInstance是你须要转换的DataRow,User是你要转换的实体类型url

   dataRowInstance.ToEntity<User>();orm

源码下载:

  github地址:https://github.com/yjqGitHub/EmitConvert.git

 后期若是有时间,且实现了ioc,也会在这个地址更新

相关文章
相关标签/搜索