扯淡

这是一款轻量、高效的.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. CSS学习笔记——视觉格式化模型 visual formatting model

    CSS 视觉格式化模型(visual formatting model)是用来处理文档并将它显示在视觉媒体上的机制.他有一套既定的规则(也就是W3C规范),规定了浏览器该怎么处理每一个盒子.以下内容翻 ...

  2. React Native组件介绍

    1.React Native目前已有的组件 ActivityIndicatorIOS:标准的旋转进度轮; DatePickerIOS:日期选择器: Image:图片控件: ListView:列表控件: ...

  3. 翻译:使用 ASP.NET MVC 4, EF, Knockoutjs and Bootstrap 设计和开发站点 - 4 - 验证

    验证: 快要完成我们程序的界面部分了.剩下的事情就是在用户点击 "保存" 的时候管理验证问题了.验证是主要需求,今天就是最无知的应用也不会忽视它.通过正确的验证,用户可以知道应该输 ...

  4. C# WinForm使用乐器数字接口

    继续,前面已经实现了C#调用Windows API实现了弹出对话框功能.使用了User32.dll文件,主要代码如下: [DllImport("User32.dll")]publi ...

  5. 设计模式(十三)代理模式(Proxy Pattern)

    一.引言 在软件开发过程中,有些对象有时候会由于网络或其他的障碍,以至于不能够或者不能直接访问到这些对象,如果直接访问对象给系统带来不必要的复杂性,这时候可以在客户端和目标对象之间增加一层中间层,让代 ...

  6. Eclipse中使用Gradle构建Java Web项目

    Gradle是一种自动化建构工具,使用DSL来声明项目设置.通过Gradle,可以对项目的依赖进行配置,并且自动下载所依赖的文件,使得构建项目的效率大大提高. 1. 安装Gradle 下载Gradle ...

  7. Open DS

    0: 1. Develope OpenDS from here: eu.opends.main --> Simulator.java --> main()

  8. 【转译】加入ZigBee联盟,共画物联网的未来

    Zigbee联盟是物联网全球革命的领导者,创造了随心控制的时代.Zigbee简化了无线产品的整合.加快了市场化,同时让那些希望引入高能效的无线控制的厂商,降低了成本和风险.我们的联盟成员在开放的全球环 ...

  9. js通过循环多张图片实现动画效果

    以小鱼摇尾巴和眨眼睛为例 动画思路: 1.将图片资源放在数组里面 2.通过计时器来设定间隔时间 3.通过计数器来取相应的图片 第一步:基本框架,鱼身体 <body> <canvas ...

  10. 你必须收藏的Github技巧

    一秒钟把Github项目变成前端网站 GitHub Pages大家可能都知道,常用的做法,是建立一个gh-pages的分支,通过setting里的设置的GitHub Pages模块可以自动创建该项目的 ...