.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不同,属于轻量级的,并且是半自动的.也就是说实体类都要自己写.它没有复杂 ...
随机推荐
- app开发-1
一.了解HBuilder HBuilder内封装了大量的书籍,极大方便了使用 官方文档: http://dev.dcloud.net.cn/mui/ui/ 关于布局: mhead 表头.mbody ...
- git免密
免账号密码输入 git clone https://lichuanfa%40gitcloud.com.cn:lcf13870752164@git.c.citic/Citic-Data/bigdata_ ...
- R笔记整理(持续更新中)
1. 安装R包 install.packages("ggplot2") #注意留意在包的名称外有引号!!! library(ggplot2) #在加载包的时候,则不需要在包的名称外 ...
- 对字符串'//*[@]/div/p/a[1]/c[2]/a[3]/b'从右向左依次删除指定字符串
import re s='//*[@]' a=s+'/div/p/a[1]/c[2]/a[3]/b' c=[1,2] b=a.split(s) #切割 c=b[1].split('/') #切割 d= ...
- Django REST framework 使用简记
最近在参与的项目中需要使用到dajngo REST framework工具包进行开发,之前参与的项目几乎都是清一色的使用原生的django(话说偶尔也会使用一下Flask,真心不怎么喜欢这个框架),之 ...
- 讲解Flume
Spark Streaming通过push模式和pull模式两种模式来集成Flume push模式:Spark Streaming端会启动一个基于Avro Socket Server的Receiver ...
- 关于System.MissingMethodException异常
什么是MissingMethodException 试图动态访问不存在的方法时引发的异常. 继承 Object Exception SystemException MemberAccessExcept ...
- isntall
#! /bin/bash # zabbix server address zabbix='10.10.238.110' # repo address REPO='10.10.238.114:4507' ...
- 石子合并(NOI1995)题解
题目描述 在一个圆形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分. 试设计出1个算法,计算出将N堆石子合并成1 ...
- Hdu 3037 Saving Beans(Lucus定理+乘法逆元)
Saving Beans Time Limit: 3000 MS Memory Limit: 32768 K Problem Description Although winter is far aw ...