.NET(C#)主流ORM总揽

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框架。

推荐等级:★★★☆☆

原文地址:https://www.cnblogs.com/xiyangtianshi/p/9144228.html

时间: 2024-08-03 14:04:43

.NET(C#)主流ORM总揽的相关文章

Mego(1) - NET中主流ORM框架性能对比

从刚刚开始接触ORM到现在已有超过八年时间,用过了不少ORM框架也了解了不少ORM框架,看过N种关于ORM框架的相关资料与评论,各种言论让人很难选择.在ORM的众多问题中最突出的问题是关于性能方面的问题,因此我在看了国外的一遍文章(Dapper vs Entity Framework vs ADO.NET Performance Benchmarking)后受到启发,在这个文章的基础上扩展了测试用例分享给大家. 模型准备 数据初始化 测试用例说明 测试结果 结果分析 模型准备 用于测试是模型是基

Mego(2) - NET主流ORM框架分析

接上文我们测试了各个ORM框架的性能,大家可以很直观的看到各个ORM框架与原生的ADO.NET在境删改查的性能差异.这里和大家分享下我对ORM框架的理解及一些使用经验. ORM框架工作原理 典型ORM框架实现 EF功能最强的ORM EF与EFCore缺陷 ORM框架工作原理 所有的ORM框架的工作原理都离不开下面这张图,只是每个框架的实现程度不同但是最终的目的是相同的. 如果是一个ORM框架那么一定会有上图中蓝色部分的这几个元素,无论是增删改查对于ORM一定是以对象为起点,使用对象构造出LINQ

ORM for Net主流框架汇总与效率测试

框架已经被越来越多的人所关注与使用了,今天我们就来研究一下net方面的几个主流ORM框架,以及它们的效率测试(可能会有遗漏欢迎大家讨论). ORM框架:Object/Relation Mapping(对象/关系 映射)的缩写,易于理解的模型化数据的方法.简单的说就是把数据库的关系型数据类型转换为用对象型程序控制的框架类型. 今天研究的orm框架如下: 1.NHibernate(使用与介绍:http://www.cnblogs.com/stone_w/archive/2011/09/15/2177

【开源框架】SqlSugarRepository 全库ORM 正式发布

SqlSugarRepository.dll 全库开发框架支持 四种数据库:SqlServer. MySql .Oracle和Sqlite. SqlSugarRepository是为全库开发而生的ORM框架,能够做到多种数据库之间的无间隙切换,在这一年多的时间里,园友提出的各种需求我都已经切切实实的去做了,做到了能力范围内的最好,一个不错的里程碑.同时也对未来有了更明确的规划,这只是开源的开始,Sugar ORM 还会有更多惊喜. 基于SqlSugar的开源CMS(佰签软件出品)和SqlSuga

[转]为什么我说ORM是一种反模式

原文地址:http://www.nowamagic.net/librarys/veda/detail/2217 上周我在在上讨论了ORM,在那以后有人希望我澄清我的意思.事实上,我曾经写文章讨论过ORM, 但那是在一场关于SQL的大讨论的上下文中,我不应该把这将两件事情混为一谈. 因此,在本文中我将关注ORM本身.同时,我尽力保持简略,因为从我的SQL文章中显而易见的是:人们倾向于一旦读到让他们发怒的内容就会离开(同时留下一句留言,而不论他们所关注的东西是否在后面会讨论到). 什么是反模式? 我

.NET深入解析LINQ框架(二:LINQ优雅的前奏)

阅读目录: 1.LINQ框架的主要设计模型 1.1.链式设计模式 (以流水线般的链接方式设计系统逻辑) 1.2.链式查询方法(逐步加工查询表达式中的每一个工作点) 2.LINQ框架的核心设计原理 2.1.托管语言之上的语言(LINQ查询表达式) 2.2.托管语言构造的基础(LINQ依附通用接口与查询操作符对应的方法对接) 2.3.深入IEnumerable.IEnumerable<T>.Enumerable(LINQ to Object框架的入口) 2.4.深入IQueryable.IQuer

开源框架GreenDao的操作

1.为什么需要GreenDao?Google原生API不方便 @1手动组拼SQL语句 @2需要自己写操作数据库代码 @3不能把数据库中的数据映射成对象 @4没有实现关联查询 2.GreenDao是什么? 开源的数据库操作框架,让操作数据库变为操作对象 3.GreenDao的优点? @1让业务代码访问对象,而不是操作数据库表 @2隐藏了面向对象的逻辑SQL查询详情 @3无须处理数据库实现 4.ANDROID主流ORM框架 @1 OrmLite @2 SugarORM @3 LitePal @4 G

WCF Data Service ----理论准备

WCF数据服务(WCF Data Service )是.NET Framework的一个组件. 可以使用此组件创建一些服务,利用开放式数据协议(OData)来借助具象状态传输(REST)语义通过Web或Intranet公开和使用数据. OData(Open Data Protocol)开放数据协议 OData将数据公开为可通过URI寻址的资源,可使用GET.PUT.POST和DELETE这些标准HTTP谓词来访问和更改数据. OData使用Entity Data Model的实体关系约定,将资源

.NET深入解析LINQ框架1

1.LINQ简述 2.LINQ优雅前奏的音符 2.1.隐式类型 (由编辑器自动根据表达式推断出对象的最终类型) 2.2.对象初始化器 (简化了对象的创建及初始化的过程) 2.3.Lambda表达式 (对匿名方法的改进,加入了委托签名的类型推断并很好的与表达式树的结合) 2.4.扩展方法 (允许在不修改类型的内部代码的情况下为类型添加独立的行为) 2.5.匿名类型 (由对象初始化器推断得出的类型,该类型在编译后自动创建) 2.6.表达式目录树(用数据结构表示程序逻辑代码) 3.LINQ框架的主要设