当前位置: 移动技术网 > IT编程>开发语言>.net > c#使用emit方法DB,实体相互转换

c#使用emit方法DB,实体相互转换

2019年03月06日  | 移动技术网IT编程  | 我要评论

美网赛程,王爵的私有宝贝,青岛搜房网

网上有很多orm框架和数据库转换方法。

c#由ef控制,但是大家知道的是影响效率和底层控制。

因此最近几个月一直在研究。最后产出了hikari数据库连接池。

但是该库只是定位在连接池,无法有效进行后续操作,经过自己经验积累和网上关于反射性能的东西,最后决定为大家提供扩展库,也就是hikari的扩展库。

但是扩展库与数据库连接池没有直接关系,所以很后面由分别提供了datatabletolist,listtodatatable.都是采用的emit.哎,经历一段时间后感觉没有必要分成2个库,因为本身就不大。

遗憾的是 .net standard版本没有提供完整的emit.所以emit只能分别提供.net core,net framework.根据发布想象,下一版本.net standard将提供,后面将会修改。

说了这么多,其实就是把前面几篇博文用一个.net core库整合提供,但是没有提供net framework的。如果你需要使用emit方式的net framework版本,你只需要建立一个net framework库,然后把源码直接复制进去即可,我已经测试好了,只是不提供了,没有必要。

  当然该版本完善了一下代码,增加了(修复)对实体的可空类型的支持。

需要说明的是,以前我被骗了,没有怎么研究过,只是会使用可空类型,但是为了实现转换,支持可空类型,在研究emit是才知道,给可空类型赋值实际是有一个转换的。例如:

  int? a=4;

该语句实际是nullable<int> a=new nullable<int>();所以是有一个初始化的过程和分配过程,也许比类要好点。

但是在执行emit时发现还是会影响性能速度,虽然很小,几乎不会知道。因此在与数据库转换时,尤其是你需要高速转换时,不要使用可空类型。

项目地址:

https://github.com/jinyuttt/entitymappingdbemit.git

已经提交nuget,名称:entitymappingdbemitcore

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网