什么是ORM?

ORM 是 Object Relational Mapping 的缩写,译为“对象关系映射”,是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。它解决了对象和关系型数据库之间的数据交互问题,ORM的作用是在关系型数据库和业务实体对象之间作一个映射,这样我们在具体的操作业务对象的时候,就不需要再去和复杂的SQL语句打交道,只需简单的操作对象的属性和方法。

如何选择合适自己的ORM框架?

对于我们而言选择ORM框架的目的其实都是为了让我们的程序更好的操作数据库,提高开发编程效率和程序的维护拓展性。因此我们在为自己负责的项目选择合适的ORM框架的时候需要从项目的业务场景出发,选择最适合自己团队的ORM框架(注意没有完美的框架,适合团队的才是最好的)。以下是一些比较好用且优秀的.NET ORM框架汇总,排名不分先后可供大家参考学习(假如您有更好的.NET相关ORM推荐请在文末留言,谢谢)。

.NET ORM框架使用情况统计

统计以下16个.NET ORM框架使用情况(可多选),下面16个.NET ORM框架都是比较好用且优秀的框架,排名不分先后可供大家参考学习。欢迎大家参与、分享,之后会把统计结果发布在微信公众号和DotNetGuide技术交流群里。

使用情况统计微信投票地址(需要用手机微信登录投票/查看投票结果):https://mp.weixin.qq.com/s/dyq-WVeua6vRY3rpSdhBmw

优秀项目和框架精选

下面的.NET ORM框架已收录到C#/.NET/.NET Core优秀项目和框架精选中,关注优秀项目和框架精选能让你及时了解C#、.NET和.NET Core领域的最新动态和最佳实践,提高开发工作效率和质量。坑已挖,欢迎大家踊跃提交PR推荐或自荐(让优秀的项目和框架不被埋没)。

https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.md

EF/EF Core

Entity Framework (EF) Core 是轻量化、可扩展、开源和跨平台版的常用 Entity Framework 数据访问技术,EF Core 是适用于 .NET 的现代对象数据库映射器。它支持 LINQ 查询、更改跟踪、更新和架构迁移。EF Core 通过提供程序插件 API 与 SQL Server、Azure SQL 数据库、SQLite、Azure Cosmos DB、MySQL、PostgreSQL 和其他数据库一起使用。(微软官方出品)。

Dapper

Dapper是一个简单的.NET对象映射器,在速度方面具有"King of Micro ORM"的头衔,几乎与使用原始的ADO.NET数据读取器一样快。ORM是一个对象关系映射器,它负责数据库和编程语言之间的映射。Dapper通过扩展IDbConnection提供一些有用的扩展方法去查询您的数据库。

SqlSugar

SqlSugar 是一款 老牌 .NET 开源多库架构ORM框架(EF Core单库架构),由果糖大数据科技团队 维护和更新 ,开箱即用最易上手的.NET ORM框架 。

FreeSql

FreeSql 是一款功能强大的对象关系映射(O/RM)组件,支持 .NET Core 2.1+、.NET Framework 4.0+ 以及 Xamarin。

Chloe.ORM

Chloe.ORM 是一款国产十分稳定可靠的 ORM 框架。除了常规增删查改外还支持连接查询、分组查询、聚合查询、子查询,大部分操作可通过 lambda 完成。还支持分库分表分页、聚合、分组聚合,并支持多个字段组合分片以及多字段路由。

nhibernate-core

NHibernate是.NET框架的成熟、开源的对象关系映射工具。它在积极开发中,功能齐全,并已成功应用于数千个项目中。

SmartSql

SmartSql = C# 中的 MyBatis + .NET Core+ 缓存(内存 | Redis)+ R/W 拆分 + PropertyChangedTrack +动态存储库 + InvokeSync + 诊断。SmartSql 借鉴了 MyBatis 的思想,使用 XML 来管理 SQL ,并且提供了若干个筛选器标签来消除代码层面的各种 if/else 的判断分支。SmartSql将管理你的 SQL ,并且通过筛选标签来维护本来你在代码层面的各种条件判断,使你的代码更加优美。

PetaPoco

PetaPoco 是一个用于 .NET(4、4.5+、net standard 2.0+)和 Mono 的微型、快速、易于使用的 micro-ORM。由于 PetaPoco 所代表的简单性和易用性,它受到许多人的喜爱。PetaPoco 是首选的微 ORM,也是任何体面的开发人员工具包中必不可少的实用程序。

linq2db

LINQ to DB 是最快的LINQ数据库访问库,在POCO对象和数据库之间提供了一个简单、轻量、快速且类型安全的层。在架构上,它比 Dapper、Massive 或 PetaPoco 等微 ORM 高出一步,因为您使用 LINQ 表达式,而不是魔术字符串,同时在代码和数据库之间维护一个薄抽象层。您的查询由 C# 编译器检查并允许轻松重构。但是,它不像 LINQ to SQL 或实体框架那么重。没有更改跟踪,因此您必须自己进行管理,但从积极的方面来说,您可以获得更多控制权并更快地访问您的数据。

RepoDb

RepoDB是一个开源的.NET ORM库,它弥合了微ORM和完整ORM之间的差距。它帮助您简化在开发过程中何时使用基本操作和高级操作的切换。

ServiceStack.OrmLite

OrmLite是一个快速、简单、类型化的.NET ORM,OrmLite 的目标是提供一个方便、DRY、无配置、与 RDBMS 无关的类型包装器,该包装器与 SQL 保持高度亲和性,公开直观的 API,生成可预测的 SQL 并干净地映射到断开连接和数据传输对象 (DTO) 友好、普通的旧C# 对象 (POCO)。这种方法更容易推理您的数据访问,从而清楚地知道什么 SQL 在什么时间执行,同时减轻意外行为、隐式 N+1 查询和重对象关系映射器 (ORM) 中普遍存在的泄漏数据访问。

SQLite-net

简单、强大、跨平台的 SQLite 客户端和 .NET 的 ORM。

Insight.Database

Insight.Database是一个用于 .NET 的快速、轻量级的 micro-orm。

cyqdata

cyq.data是一个高性能且功能最强大的orm(支持.NET Core),支持Txt、Xml、Access、Sqlite、Mssql、Mysql、Oracle、Sybase、Postgres、DB2、Redis、MemCache。

querybuilder

SQL 查询构建器,用 c# 编写,帮助您轻松构建复杂的查询,支持 SqlServer、MySql、PostgreSql、Oracle、Sqlite 和 Firebird。

TinyORM

TinyORM是一个简单、快速且安全的微型.NET ORM。

16个值得推荐的.NET ORM框架(含使用情况统计的投票,欢迎参与)的更多相关文章

  1. 2022年了有哪些值得推荐的.NET ORM框架?

    前言: 最近有很多同学问我.NET方面有哪些好用的ORM框架,我觉得这方面的介绍网上应该会介绍的比较全面文章,于是我想搜一篇全面的介绍文章发给他们结果我发现网上说来说去基本上就是那几个,于是就有了这篇 ...

  2. 值得推荐的C/C++框架和库

    值得推荐的C/C++框架和库 [本文系外部转贴,原文地址:http://coolshell.info/c/c++/2014/12/13/c-open-project.htm]留作存档 下次造轮子前先看 ...

  3. 值得推荐的C/C++框架和库 (真的很强大) c

    http://m.blog.csdn.net/mfcing/article/details/49001887 值得推荐的C/C++框架和库 (真的很强大) 发表于2015/10/9 21:13:14 ...

  4. 【转载】值得推荐的C/C++框架和库

    原文:值得推荐的C/C++框架和库 值得学习的C语言开源项目 Libevent libev是一个开源的事件驱动库,基于epoll,kqueue等OS提供的基础设施.其以高效出名,它可以将IO事件,定时 ...

  5. 【转】 值得推荐的C/C++框架和库 (真的很强大)

    [转] 值得推荐的C/C++框架和库 (真的很强大) 值得学习的C语言开源项目 - 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具.它使用fork()模拟多个 ...

  6. 值得推荐的android开源框架

    1.volley 项目地址https://github.com/smanikandan14/Volley-demo (1) JSON,图像等的异步下载: (2) 网络请求的排序(scheduling) ...

  7. 推荐的Android ORM框架

    1. OrmLite OrmLite 不是 Android 平台专用的ORM框架,它是Java ORM.支持JDBC连接,Spring以及Android平台.语法中广泛使用了注解(Annotation ...

  8. 6个值得推荐的Android开源框架简介(转)

    虽然我们在做app的时候并不一定用到框架,但是一些好框架的思想是非常有学习价值的 1.volley 项目地址 https://github.com/smanikandan14/Volley-demo  ...

  9. 六款值得推荐的Android开源框架简介

    技术不再多,知道一些常用的.不错的就够了.下面就是最近整理的“性价比”比较高的Android开源框架,应该是相对实用的. 1.volley 项目地址 https://github.com/smanik ...

  10. 1.值得推荐的C/C++框架和库 (转)

    值得学习的C语言开源项目 - 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的 ...

随机推荐

  1. Redis从入门到放弃(3):发布与订阅

    1.介绍 Redis是一个快速.开源的内存数据库,支持多种数据结构,如字符串.哈希.列表.集合.有序集合等.除了基本的数据存储和检索功能外,Redis还提供了许多高级功能,其中之一就是发布订阅(Pub ...

  2. C# 处理 csv 文件中的双引号

    C# CSV 双引号处理 直接上代码,自己写的,有问题可以随时联系 // 没有保证所有的都能对上,目前只处理了自己所遇见的格式 public static string[] SplitStr(stri ...

  3. vlunhub笔记(二)earth

    (一)信息收集 开始扫描目标机ip,目标机ip:192.168.241.135 arp-scan -l 直接访问目标  ip 192.168.241.135   发现400报错 只能先去考虑扫一下信息 ...

  4. html5 3.0 表单

    表单的定义:多个输入框,以表格的形式展示 表单常用在网页登录和注册功能中 表单的元素属性:<input type="text"name="   "valu ...

  5. PE文件结构1

    引言 PE文件格式是Windows操作系统下的可执行文件的格式,包括.exe文件和.dll文件,通过PE文件格式的学习,可以帮助我们更加熟悉有关Windows系统下的逆向分析和PC端病毒的学习,同时P ...

  6. Vue【原创】千位符输入框(不仅只是过滤器哦)

    最近和一个做金融的朋友讨论到千位符输入的问题,后来一想貌似自己项目中也会经常碰到金额数字这种输入框,要么自己做一个吧. 首先肯定要有一个正则表达式,也就是过滤器的方案里面常用的正则: 1 filter ...

  7. MIT 6.828 Lab实验记录 —— lab1 Booting PC

    实验参考信息 MIT 6.828 lab1 讲义地址 MIT 6.828 课程 Schedule MIT 6.828 lab 环境搭建参考 MIT 6.828 lab 工具guide Brennan' ...

  8. 应用程序通过 Envoy 代理和 Jaeger 进行分布式追踪 —— Ingress Controller + Http服务 + Grpc服务(三)

    1.概述 在<应用程序通过 Envoy 代理和 Jaeger 进行分布式追踪(一)>这篇博文中,我们详细介绍了单个应用程序通过 Envoy 和 Jaeger 实现链路追踪的过程.通过这个示 ...

  9. Elasticsearch之索引简单应用

    本篇所有操作都在 Kibana 上执行 创建第一个索引 PUT product { // 索引设置 "settings": { // 分片数量 "number_of_sh ...

  10. docker搭建CMS靶场

    项目地址:https://github.com/Betsy0/CMSVulSource 该项目是为了方便在对CMS漏洞进行复现的时候花费大量的时间在网上搜索漏洞源码,从而有了此项目.此项目仅为安全研究 ...