[开源].NET高性能框架Chloe.ORM-完美支持.NET Core

扯淡

这是一款轻量、高效的.NET C#数据库访问框架(ORM)。查询接口借鉴 Linq(但不支持 Linq)。借助 lambda 表达式,可以完全用面向对象的方式就能轻松执行多表连接查询、分组查询、聚合查询、插入数据、批量删除和更新等操作。

.NET Core 发布至今挺久的了,由于我本人不是很赶潮流,因此,都没去学习它,只是从“道听途说”中了解到 .NET Core 把很多功能模块化,分离开来,同时也发展跨平台。最近貌似很火,我也该追随大家的步伐了,要不真的 OUT 了。学习离不开练习,练习什么呢?就拿 Chloe 开刀吧!Chloe 已稳定许久,继上周支持 MySql 以后,于是就趁学习 .NET Core 这段时间,顺便做出个 ChloeCore 版。利用业余时间,跌跌撞撞熟悉了 .NET Core 的工作方式以及与 .NET Framework 的异同。由于 Chloe 框架本身对外依赖比较少,上周末,早上起来花了不到一个小时就把 ChloeCore 给开发出来了。移植过程基本上就是处理 Type 类型方法和属性的问题,因为原来 Type 类的很多成员都移到 TypeInfo 类上了,顾名思义,TypeInfo 就是记录一个 Class 的类型信息,听说是因为微软觉得原来 Type 类里面很多成员都不会被日常开发中用到,所以,就把大部分成员都转移到了 TypeInfo 上去了。至于其它,呃...一帆风顺,没啥棘手的~现在 Chloe 已经支持 .NET Core,感兴趣的同学可以从 NuGet 上安装来试试,NuGet Install Command:Install-Package ChloeCore.SqlServer。或者在 vs 的 NuGet 包管理器中输入 Chloe 或者 ChloeCore 就可以搜出来了。顺便吐槽一下 .NET Core,任何引用都基于 NuGet 包,对 NuGet 极度依赖,害的我花了近一天的时间在学习 NuGet 打包和发布上,折腾死我了!另外,非常感谢园友[小杰]分享了一个漂亮的 Icon 让我拿来做 Chloe 的图标!

Chloe.ORM

Chloe?什么东西?妹子吗?Chloe 刚面世不久,估计很多同学还没了解。顺带介绍下(以下内容纯属凑字数)...

Chloe 是一枚既懒又任性的程序员开发的一个数据库访问框架。目前已经支持 SqlServer 和 MySql 两种数据库。框架的增删查改都依赖 lambda 表达式,因为,作者已经懒得无可救药,厌倦了手写 Sql~

Chloe 特性

  1. 实体为纯 POCO,完全可以手写实体,无需任何代码生成器
  2. 无需任何配置文件,传个数据库连接字符串就能活泼乱跳
  3. 增删查改都可以用 lambda 表达式完成,全对象化编程,智能提示,编译检查,容错率极高
  4. 查询接口借鉴 Linq,全链式开发,无需任何学习成本
  5. 支持多表连接查询,可以直接返回强类型实体,也可以任意选取指定字段,也可以 Select 匿名对象作为返回结果,随心所欲,没有条条框框限制,想怎么玩就怎么玩,查看详情
  6. 支持聚合查询,不同于 EntityFramework,Chloe 的聚合查询更趋于标准 Sql 思想,查看详情
  7. 支持分组查询,可以结合聚合函数一起查询,灵活做统计,查看详情
  8. 连接查询、分组查询、聚合查询结合使用,可以实现很多复杂查询,完全可以让 DB “零视图”,使项目“零Sql”,查看详情
  9. lambda 表达式支持丰富,目前除了微软自家的 EntityFramework 外,还没发现有比 Chloe 支持更好的框架,觉得是吹牛欢迎来辩,我脸已经打好麻药,不怕大家来扇!查看详情
  10. 支持各种数据库函数,如 DATEADD、DATEPART、NEWID、GETDATE、GETUTCDATE、LEN、SUBSTRING 等等,不一一列举了,当然,也支持 LIKE 和 IN 语法,查看详情
  11. 支持 SqlServer2012 分页方式
  12. 查询语句灵活可控,不用担心生成的 sql 质量问题
  13. 插入数据可以自动返回自增 Id 值,会自动将自增值设置到相应的实体属性,查看详情
  14. 利用 lambda 表达式可以有选择的向指定的列插入数据
  15. 利用 lambda 表达式可以有选择的更新指定列
  16. 调用方法 TrackEntity,DbContext 会跟踪实体属性变化,可以像 EF 一样只更新属性值改变了的列,查看详情
  17. 支持批量更新数据
  18. 支持批量删除数据,查看详情
  19. 支(chun)持(shu)事(fei)务(hua)
  20. 万物皆对象,所有的一切都可以用 lambda 表达式完成
  21. 极致追求,从 DataReader 读数据纯粹调用强类型方法(GetInt32,GetInt64)获取值,避免装拆箱,性能超强,秒 Dapper,比肩手写,查看详情
  22. BUG?没有。有的只是 NotSupportedException 和 NotImplementedException

...(此处省略 N 百个字)

愤青:LZ,够了够了,少吹点会死?
好好,说完特性,咱们来谈谈缺点。
呃...嗯...呃...缺点?等你来发现~
(以上书写风格以及右下角推荐框悬浮CSS山寨园友[陌城&心灵捕手]的博客,希望陌城大大看到了不要介意哈)

上周在群里看到一张有关 .NET Core 的图,贴来让大家高兴高兴:

结语

Chloe 的革命尚未成功,目前只支持 SqlServer 和 MySql,LZ 会继续努力。接下来的发展目标是支持 SQLite,敬请期待!

Chloe.ORM 完全开源,遵循 Apache2.0 协议,托管于 GitHub,地址:https://github.com/shuxinqin/Chloe

相关介绍:http://www.cnblogs.com/so9527/p/5636216.html
性能测试:http://www.cnblogs.com/so9527/p/5674498.html

ps:LZ 初生牛犊,涉世未深,年少无知,有点儿狂妄自大,望各位口下、手下、键盘下留情,不要太当真,在下跪谢了!

时间: 2024-10-29 20:09:29

[开源].NET高性能框架Chloe.ORM-完美支持.NET Core的相关文章

[开源].NET数据库访问框架Chloe.ORM

前言 13年毕业之际,进入第一家公司实习,接触了 EntityFramework,当时就觉得这东西太牛了,访问数据库都可以做得这么轻松.优雅!毕竟那时还年轻,没见过世面.工作之前为了拿个实习机会混个工作证明,匆匆忙忙学了两个月的 C#,就这样,稀里糊涂的做了程序员,从此走上了一条不归路.那会也只知道 SqlHelper,DataTable.ORM?太高档上,没听说过.虽然在第一家公司只呆了两个月,但让我认识了 EntityFramework,从此也走上了 ORM 的不归路...纯纯的实体,增改删

Asp.Net 高性能框架 SqlSugar.ORM 2.3

一.前言 SqlSugar从去年到现在已经一年了,版本从1.0升到了现在的2.3 ,这是一个稳定版本 ,有数家公司已经项目上线,在这里我将SqlSugar的功能重新整理成一篇新的贴子,希望大家喜欢. 公司团队项目.产品已经完全抛弃EF,SqlSugar定位不是ORM,而是为了方面的让你去写Sql. 支持Json .Dynamic. List<T>. List<string[]>. ValueType和  Dictionary 等多种类型的返回值也是一大亮点. 执行十万次[将拉姆达]

PetaPoco - 轻量级高性能的ORM框架(支持.NET Core)

我们都知道ORM全称叫做Object Relationship Mapper,也就是可以用object来map我们的db. 而且市面上的orm框架有很多,有重量级的Entity Framework,有轻量级的Dapper.PetaPoco等 假如你喜欢原生的Sql语句.又喜欢ORM的简单.又追求高性能,那么轻量级的ORM框架是你的不二选择. 说到轻量级ORM框架Dapper的名气比较大(因为出自名门?),但我却选择使用PetaPoco,因为: 提供了更易用的API Dapper仅提供了一系列Qu

[开源]无sql之旅-Chloe.ORM之增删查改

扯淡 这是一款轻量.高效的.NET C#数据库访问框架(ORM).查询接口借鉴 Linq(但不支持 Linq).借助 lambda 表达式,可以完全用面向对象的方式就能轻松执行多表连接查询.分组查询.聚合函数查询.插入数据.删除和更新满足条件的数据等操作. 在上篇文章中, Chloe.ORM 初次对外抛头露面,虽然是在重复造轮子,但还是得到部分园友的支持与认可,LZ非常感谢!上文主要展示 Chloe 的查询方式以及支持的 lambda 写法,本文主题是多表连接查询.插入数据.更新数据.删除数据以

nginx完美支持tp框架

nginx完美支持tp框架 server { listen 80; server_name mit.520m.com.cn; access_log /data/wwwlogs/mit.520m.com.cn_nginx.log combined; index index.html index.htm index.php; #include /usr/local/nginx/conf/wordpress.conf; root /data/wwwroot/peita2.0; location / {

二十三、【开源】EFW框架Web前端开发之常用组件(FusionCharts图表、ReportAll报表等)

回<[开源]EFW框架系列文章索引>        EFW框架源代码下载V1.2:http://pan.baidu.com/s/1hcnuA EFW框架实例源代码下载:http://pan.baidu.com/s/1o6MAKCa 前言:上一章讲了EFW框架中的界面框架JqueryEasyUI,在一个Web系统开发中除了需要一个好的界面框架还有需要一些功能,比如:图表展示.Web报表预览打印.文件上传.文本编辑等功能在Web系统开发过程中也是经常用到的:为了方便大家使用EFW框架开发系统,本人

22个开源的PHP框架

22个开源的PHP框架 2009-06-25 14:51 本文介绍了22个开源PHP框架.文章主要介绍了Zend,Symfony这些最有前途的框架. AD:2014WOT全球软件技术峰会北京站 课程视频发布 PHP 是一个被广泛使用的来进行Web开发的脚本语言.虽然有很多其它可供选择的Web开发语言,像:ASP 和Ruby,但是PHP是目前为止世界上最为流行的. 那么,是什么让PHP如此流行?PHP 如此之流行是因为比起别的语言来,它更容易学习,网上有一大堆相当相当不错的PHP教程可以让你快速地

【开源】OSharp框架解说系列(1):总体设计

〇.前言 哈,距离前一个系列<MVC实用构架设计>的烂尾篇(2013年9月1日)已经跨了两个年头了,今天是2015年1月9日,日期已经相映,让我们开启新的航程吧. 前一个系列讲的主要是我对架构设计的理解以及怎样用好EntityFramework的一些想法,在技术细节上并没有太多的考究.不幸的是,不少同学把这个架构当作框架来用了,里边留的很多坑,坑苦了很多人,真是误人子弟,深表愧疚.于是重新整理代码,整理思路,鼓捣出了这个我们将要详解的开源框架:OSharp.这次,我们真的深入地说框架了,而不是

【开源】OSharp框架学习系列(1):总体设计及系列导航

OSharp是什么? OSharp是个快速开发框架,但不是一个大而全的包罗万象的框架,严格的说,OSharp中什么都没有实现.与其他大而全的框架最大的不同点,就是OSharp只做抽象封装,不做实现.依赖注入.ORM.对象映射.日志.缓存等等功能,都只定义了一套最基础最通用的抽象封装,提供了一套统一的API.约定与规则,并定义了部分执行流程,主要是让项目在一定的规范下进行开发.所有的功能实现端,都是通过现有的成熟的第三方组件来实现的,除了EntityFramework之外,所有的第三方实现都可以轻