扯淡

这是一款轻量、高效的.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 初生牛犊,涉世未深,年少无知,有点儿狂妄自大,望各位口下、手下、键盘下留情,不要太当真,在下跪谢了!

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

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

    扯淡 这是一款轻量.高效的.NET C#数据库访问框架(ORM).查询接口借鉴 Linq(但不支持 Linq).借助 lambda 表达式,可以完全用面向对象的方式就能轻松执行多表连接查询.分组查询. ...

  2. .NET高性能框架Chloe.ORM-完美支持MySql

    扯淡 这是一款轻量.高效的.NET C#数据库访问框架(ORM).查询接口借鉴 Linq(但不支持 Linq).借助 lambda 表达式,可以完全用面向对象的方式就能轻松执行多表连接查询.分组查询. ...

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

    扯淡 13年毕业之际,进入第一家公司实习,接触了 EntityFramework,当时就觉得这东西太牛了,访问数据库都可以做得这么轻松.优雅!毕竟那时还年轻,没见过世面.工作之前为了拿个实习机会混个工 ...

  4. 高品质开源工具Chloe.ORM:支持存储过程与Oracle

    扯淡 这是一款高质量的.NET C#数据库访问框架(ORM).查询接口借鉴 Linq.借助 lambda 表达式,可以完全用面向对象的方式就能轻松执行多表连接查询.分组查询.聚合查询.插入数据.批量删 ...

  5. [转]高品质开源工具Chloe.ORM:支持存储过程与Oracle

    本文转自:http://www.cnblogs.com/so9527/p/6131177.html 扯淡 这是一款高质量的.NET C#数据库访问框架(ORM).查询接口借鉴 Linq.借助 lamb ...

  6. 类EF框架Chloe.ORM升级:只为更完美

    扯淡 Chloe.ORM:一款轻量.高效的.NET C#数据库访问框架(ORM).查询接口借鉴 Linq(但不支持 Linq).借助 lambda 表达式,可以完全用面向对象的方式就能轻松执行多表连接 ...

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

    一.前言 SqlSugar从去年到现在已经一年了,版本从1.0升到了现在的2.3 ,这是一个稳定版本 ,有数家公司已经项目上线,在这里我将SqlSugar的功能重新整理成一篇新的贴子,希望大家喜欢. ...

  8. 开源DDD设计模式框架YMNNetCoreFrameWork第6篇-.net Core Logging和Nlog结合

    源码地址:https://github.com/topgunymn/YMNNetCoreFrameWork 遇到的坑:使用了Nlog以后,.NETcore自带的日志等级不起作用,只有nlog配置配置文 ...

  9. Bitter ORM NETCORE ORM 全网最粗暴简单易用高性能的 NETCore ORM 开源了

    开源的来了,懒人程序员的福音,.NET 生态闭环太缺开源精神了, 拥抱开源! 前言: 本人不是不喜欢现有ORM的轮子,而是发现现有的ORM 的都不太符合开发人员的一些习惯.现有的ORM 要么功能太冗余 ...

随机推荐

  1. Moon.Orm 配置说明

    一.在线技术文档: http://files.cnblogs.com/files/humble/d.pdf   二.使用的大致流程   1.首先下载代码生成器,可以一键生成项目Model层;(其中含有 ...

  2. React-Native学习系列(一)

    近段时间一直在忙,所以博客也没有更新,这两天我翻了一下写的这几篇博客,感觉写的都很片面,所以,我想重新写一个系列教程,从最基础的开始,来让大家更容易学会React-Native. 这个系列大部分只介绍 ...

  3. Markdown通用的常用语法说明

    前言 Markdown 是一种轻量级的 标记语言,语法简洁明了.学习容易,还具有其他很多优点,目前被越来越多的人用来写作使用. Markdown具有一系列衍生版本,用于扩展Markdown的功能(如表 ...

  4. [C1] C1ComboBox 的非编辑状态优化

    一.前言 先看看 WPF 自带的 ComboBox 在非编辑状态,自定义 ItemTemplate 的情况下,效果如下图所示: 其当前选中的项(红框内)与自定义的 ItemTemplate 一样: 但 ...

  5. Button 模板和样式

    <Style TargetType="{x:Type Button}"> <Setter Property="FontFamily" Valu ...

  6. C# 复制指定节点的所有子孙节点到新建的节点下

    XML结构: 新建一个mask_list节点,一个procedure节点,将上面的mask_list和procedure节点的所有子孙节点添加到新建的mask_list和procedure节点 Xml ...

  7. JDBC_part4_大对象_DAO_Bean_DButi

    本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 谢谢配合! JDBCday04_大对象_Dao_DBUtil_Ja ...

  8. javascript的理解及经典案例

    js的简介: JavaScript是一种能让你的网页更加生动活泼的程式语言,也是目前网页中设计中最容易学又最方便的语言. 你可以利用JavaScript轻易的做出亲切的欢迎讯息.漂亮的数字钟.有广告效 ...

  9. 301和302 Http状态有啥区别?

    301和302 Http状态有啥区别? 301,302 都是HTTP状态的编码,都代表着某个URL发生了转移,不同之处在于: 301 redirect: 301 代表永久性转移(Permanently ...

  10. 菜鸟快飞之JavaScript对象、原型、继承(二)

    上一节写了创建对象的三种方法,而其中通过函数创建对象的方式又有三种模式,分别是工厂模式.构造函数模式.原型模式.而这三种模式最常用的则是原型模式.还是上栗子: 工厂模式: function Fun1( ...