.NET(C#)有哪些主流的ORM框架,SqlSugar,Dapper,EF还是...
前言
在以前的一篇文章中,为大家分享了《什么是ORM?为什么用ORM?浅析ORM的使用及利弊》。那么,在目前的.NET(C#)的世界里,有哪些主流的ORM,SqlSugar,Dapper,Entity Framework(EF)还是ServiceStack.OrmLite?或者是你还有更好的ORM推荐呢? 如果有的话,不防也一起分享给大家。
.NET(C#)主流ORM总揽
今天这篇文章分享几款收集的目前.NET(C#)中比较流行的ORM框架,比如(以下框架均为开源框架,托管于github上):
- SqlSugar (国内)
- Dos.ORM (国内)
- Chloe (国内)
- StackExchange/Dapper (国外)
- Entity Framework (EF) (国外)
- NHibernate (国外)
- ServiceStack/ServiceStack.OrmLite (国外)
- linq2db (国外)
- Massive (国外)
- PetaPoco (国外)
SqlSugar
SqlSugar是国人开发者开发的一款基于.NET的ORM框架,是可以运行在.NET 4.+ & .NET CORE的高性能、轻量级 ORM框架,众多.NET框架中最容易使用的数据库访问技术。
特点:
- 开源、免费
- 国内开发者开发、维护;
- 支持.NET Core;
- 支持主流数据库,如:SQL Server,MySql,Oracle,Sqlite等;
- 维护更新及时
推荐等级:★★★★☆
PetaPoco
PetaPoco:轻量的POCO对象和数据库映射的ORM框架。
特点:
- 开源、免费
推荐等级:★★★★☆
linq2db
linq2db也是一款快速、轻量、类型安全的POCO对象和数据库映射的ORM框架。从构架上来说,linq2db是对比如:Dapper、PetaPoco这个的微ORM的进一步封装,但它不像Entity Framework那样笨重。它没有实现状态跟踪,需要自己处理实体的状态更改等。
推荐等级:★★★★☆
Dos.ORM
Dos.ORM(原Hxj.Data)于2009年发布,2015年正式开源。在开发过程中参考了NBear与MySoft,吸取了他们的一些精华,加入新思想,同时参考EF的Lambda语法进行大量扩展。该组件已在数百个成熟项目中应用。官方网站:http://ITdos.com/Dos/ORM/Inde...
特点:
- 开源、免费
- 上手简单,0学习成本。使用方便,按照sql书写习惯编写C#.NET代码。功能强大
- 高性能,接近手写Sql
- 体积小(不到150kb,仅一个dll)
- 完美支持Sql Server(2000至最新版),MySql,Oracle,Access,Sqlite等数据库
- 支持大量Lambda表达式写法,国产ORM支持度最高,开源中国ORM排行前三
- 不需要像NHibernate的XML配置,不需要像EF的各种数据库连接驱动
- 遵循MIT开源协议,除不允许改名,其它随意定制修改
推荐等级:★★★☆☆
ServiceStack.OrmLite
ServiceStack.OrmLite的目标是提供一种方便,无干扰,无配置的RDBMS无关类型的封装,与SQL保持高度的契合,展现直观的API,可以生成可预测的SQL。
ServiceStack.OrmLite的宗旨:Fast, Simple, Typed ORM for .NET
特点:
- 开源、收费(免费版只支持单个库10张表)
推荐等级:★★★☆☆
Entity Framework (EF)
ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案。该框架曾经为.NET Framework的一部分,但version 6之后从.NET Framework分离出来。
推荐等级:★★★☆☆
NHibernate
NHibernate是一个面向.NET环境的对象/关系数据库映射工具。对象/关系数据库映射(object/relational mapping,ORM)这个术语表示一种技术,用来把对象模型表示的对象映射到基于SQL的关系模型数据结构中去。
特点:
- 开源、免费
- 批量写入
- 批量读/多重查询特性(我理解是在说Future?)
- 批量的集合加载
- 带有lazy="extra"的集合
- 集合过滤器和分页集合
- 二级缓存(实际上NH的二级缓存貌似也很简单?)
- 集成和扩展性
- 代码自动生成,减少代码和sql的开发量,使开发人员摆脱开sql,ado.net和事务,缓存等底层
推荐等级:★★★☆☆
Massive
Massive:小巧,动态的微ORM框架。
推荐等级:★★★☆☆
以上是笔者收集整理的部分目前.NET(C#)中流行的ORM框架。
.NET(C#)有哪些主流的ORM框架,SqlSugar,Dapper,EF还是...的更多相关文章
- 目前的.NET(C#)世界里,主流的ORM框架
推荐一些常用的asp.net ORM框架 SqlSugar (国内) Dos.ORM (国内) Chloe (国内) StackExchange/Dapper (国外) Entity Framewor ...
- .Net开源SqlServer ORM框架SqlSugar整理
一.链接整理 官方Git源代码地址: https://github.com/sunkaixuan/SqlSugar 最新发布版更新地址:当前版本Release 3.5.2.1 https://gith ...
- .NET(C#)主流的ORM框架
.NET(C#)主流ORM总揽 SqlSugar (国内) Dos.ORM (国内) Chloe (国内) StackExchange/Dapper (国外) Entity Framework (EF ...
- 轻量级ORM框架初探-Dapper与PetaPoco的基本使用
一.EntityFramework EF是传统的ORM框架,也是一个比较重量级的ORM框架.这里仍然使用EF的原因在于为了突出轻量级ORM框架的性能,所谓有对比才有更优的选择. 1.1 准备一张数据库 ...
- ORM框架之------Dapper,Net下无敌的ORM
一,介绍:Dapper是一款轻量级ORM工具.如果你在小的项目中,使用Entity Framework.NHibernate 来处理大数据访问及关系映射,未免有点杀鸡用牛刀.你又觉得ORM省时省力,这 ...
- .Net 常用ORM框架对比:EF Core、FreeSql、SqlSuger
前言: 最近由于工作需要,需要选用一种ORM框架,也因此对EF Core.FreeSql.SqlSuger作简单对比.个人认为各有有优势,存在即合理,不然早就被淘汰了是吧,所以如何选择因人而议.因项目 ...
- .NET 开源SqlServer ORM框架 SqlSugar 3.0 API
3.1.x ,将作为3.X系统的最后一个版本,下面将会开发 全新的功能 更新列表:https://github.com/sunkaixuan/SqlSugar/releases 优点: SqlSuga ...
- Asp.Net 高性能ORM框架 SqlSugar.ORM 2.8
3.0最新API: http://www.cnblogs.com/sunkaixuan/p/5911334.html 1.前言/Preface SqlSugar从去年到现在已经一年了,版本从1.0升到 ...
- 【快速入门ORM框架之Dapper】大牛勿进系列
前言:dapper是什么?Dapper是.NET下一个micro的ORM,它和Entity Framework或Nhibnate不同,属于轻量级的,并且是半自动的.也就是说实体类都要自己写.它没有复杂 ...
随机推荐
- centos 7 修改密码
linux管理员忘记root密码,需要进行找回操作. 注意事项:本文基于centos7环境进行操作,由于centos的版本是有差异的,继续之前请确定好版本. 操作步骤 一.重启系统,在开机过程中,快速 ...
- Navicat 的使用 —— 快捷键
名称 功能 备注 Ctrl+Q 打开查询窗口 Ctrl+/ 注释sql语句 Ctrl+R 运行查询窗口的sql语句 Ctrl+Shift+R 只运行选中的sql语句 F6 打开一 ...
- docker-compose部署zabbix4.2.5
桥接模式(mysql和zabbix-server镜像本人修改了一些配置进行重构过) cat zabbix.yml version: '3' services: mysql: image: debian ...
- Hive 内置函数
原文见:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF 1.内置运算符1.1关系运算符 运算符 类型 说明 A ...
- Discrete Cosine Transform
离散余弦变换 由于实信号傅立叶变换的共轭对称性,导致DFT后在频域中有一半的数据冗余.离散余弦变换(DCT)在处理实信号时比离散傅立叶(DFT)变换更具优势.在处理声音信号这类实信号时,DFT得到的结 ...
- Mybatis02
1.mybatis动态sql foreach 添加接口方法 编写BookVo类 BookMapper.xml 测试 结果 2.模糊查询 3.查询返回结果集 resultMap:适合使用返回值是自定 ...
- TCP BBR 从开启到关闭:以 Debian 9 为例
TCP BBR 从开启到关闭:以 Debian 9 为例 开启 执行如下命令: echo "net.core.default_qdisc=fq" >> /etc/sys ...
- 洛谷 P3905 道路重建 题解
P3905 道路重建 题目描述 从前,在一个王国中,在\(n\)个城市间有\(m\)条道路连接,而且任意两个城市之间至多有一条道路直接相连.在经过一次严重的战争之后,有\(d\)条道路被破坏了.国王想 ...
- linux命令之------快捷键说明
linux快捷键说明 (1)命令或目录补齐:Tab (2)遍历历史记录:history 上移:ctrl+p,下移:ctrl+n (3)光标移动 左移:ctrl+b:右移:ctrl+f:移到首部:ctr ...
- Git基本介绍(三大分区及核心内部构造)
1. Git三大工作区(工作区.暂存区和版本库) 工作区(WORKING DIRECTORY): 直接编辑文件的地方,肉眼可见直接操作: 暂存区(STAGIN AREA):数据(快照)暂时存放的地方: ...