推荐一些常用的asp.net 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/Index.html

特点:

  • 开源、免费
  • 上手简单,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://github.com/StackExchange/Dapper/

https://github.com/tmsmith/Dapper-Extensions

https://github.com/zzzprojects/Dapper-Plus

https://github.com/ericdc1/Dapper.SimpleCRUD

http://www.bradoncode.com/blog/2012/12/creating-data-repository-using-dapper.html

https://github.com/bbraithwaite/RepoWrapper

https://github.com/bbraithwaite/SmsQuiz

https://github.com/henkmollema/Dapper-FluentMap

https://github.com/alexander-87/Dapper.FluentColumnMapping

https://github.com/ServiceStack/ServiceStack.OrmLite

https://github.com/senjacob/dapper-dot-net

https://github.com/senjacob/StackExchange.Redis

https://www.codeproject.com/tips/1030126/dapper-net-and-dapperextensions-to-run-stored-proc

如果这篇文章对您有帮助,您可以打赏我

技术交流QQ群:15129679

目前的.NET(C#)世界里,主流的ORM框架的更多相关文章

  1. .NET(C#)主流的ORM框架

    .NET(C#)主流ORM总揽 SqlSugar (国内) Dos.ORM (国内) Chloe (国内) StackExchange/Dapper (国外) Entity Framework (EF ...

  2. .NET(C#)有哪些主流的ORM框架,SqlSugar,Dapper,EF还是...

    前言 在以前的一篇文章中,为大家分享了<什么是ORM?为什么用ORM?浅析ORM的使用及利弊>.那么,在目前的.NET(C#)的世界里,有哪些主流的ORM,SqlSugar,Dapper, ...

  3. Android NFC开发(二)——Android世界里的NFC所具备的条件以及使用方法

    Android NFC开发(二)--Android世界里的NFC所具备的条件以及使用方法 NFC的应用比较广泛,而且知识面也是比较广的,所以就多啰嗦了几句,我还还是得跟着官方文档:http://dev ...

  4. VRChat简易教程3-往世界里导入模型和VRC接口初探

    一.准备工作 按前面的教程新建一个project,导入sdk并创建地面(Terrain)和VRCWorld. 本教程中我们学习如何导入别人做好的模型并使用VRC提供的接口来实现物品的抓取,模型素材(小 ...

  5. Cocos2d-js官方完整项目教程翻译:六、添加Chipmunk物理引擎在我们的游戏世界里

    添加Chipmunk物理引擎在我们的游戏世界里         一.简介                   cocos2d JS能给我们力量来创造令人印象深刻的游戏世界.但缺乏某种现实.       ...

  6. python世界里的局部变量和全局变量: 潜规则太重要了!!!

    python世界里的局部变量和全局变量: 潜规则太重要了!!! 先上代码: def fun(): def test_global(): ''' 内层和外层都需要声明为global, 才能彻底打通变量名 ...

  7. Python 四大主流 Web 编程框架

    Python 四大主流 Web 编程框架 目前Python的网络编程框架已经多达几十个,逐个学习它们显然不现实.但这些框架在系统架构和运行环境中有很多共通之处,本文带领读者学习基于Python网络框架 ...

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

    接上文我们测试了各个ORM框架的性能,大家可以很直观的看到各个ORM框架与原生的ADO.NET在境删改查的性能差异.这里和大家分享下我对ORM框架的理解及一些使用经验. ORM框架工作原理 典型ORM ...

  9. 自己写ORM框架 DBUtils_DG Java(C#的写在链接里)

    ORM框架想必大家都比较熟知了,即对象关系映射(英语:Object Relation Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同 ...

随机推荐

  1. 基于 PHP 的数据爬取(QueryList)

    基于PHP的数据爬取 官方网站站点 简单. 灵活.强大的PHP采集工具,让采集更简单一点. 简介: QueryList使用jQuery选择器来做采集,让你告别复杂的正则表达式:QueryList具有j ...

  2. 第五章:Realm

    一,UserRealm 1,UserRealm父类AuthorizingRealm将获取Subject相关信息分成两步: 1.1,获取身份验证信息(doGetAuthenticationInfo): ...

  3. C# 将普通字符串转换为二进制字符串

    1.因为项目的需要,在向数据库中添加人的信息时,必须要求是英文或数字,所以想了个办法,将我们人能看懂的字符串编译成二进制字符串转入就行了. 具体的逻辑实现代码如下:

  4. Linux+Shell常用命令总结

    因为自己不经常使用linux的命令行工具,但是mac的终端还是经常使用的,有些命令总是要想一会或者百度一下才知道怎么用,抽时间整理了一下常用的命令,作为笔记. 常用命令 查看文件操作: ls :列出当 ...

  5. KEIL_MDK生成Bin文件

    1.MDK配置 MDK是使用安装目录下的(formelf.exe)工具来生成bin文件,配置方法:勾选 "Run # 1",在后面输入框写入bin文件生成方式 2.绝对路径 &qu ...

  6. LeetCode 613. Shortest Distance in a Line

    Table point holds the x coordinate of some points on x-axis in a plane, which are all integers. Writ ...

  7. vi/vim 使用

    1.  vim一共有4个模式:(linux下最好用的编辑器) 正常模式 (Normal-mode) 插入模式 (Insert-mode) 命令模式 (Command-mode) 可视模式 (Visua ...

  8. Fatal error: Call to undefined function json_decode()解决办法

    最近搭建测试服务器,访问网站查看报错日志出现如下错误: Fatal error: Call to undefined function json_decode() 出现该问题原因是安装PHP时没有安装 ...

  9. 使用Nodejs在Windows上调用CMD命令

    要用nodejs执行cmd,需要引入一个包node-cmd npm install node-cmd var cmd=require('node-cmd'); cmd.get( 'notepad',/ ...

  10. centos django Failed to load resource: net::ERR_INCOMPLETE_CHUNKED_ENCODING

    os环境 centos python2.7.5 django1.10.8 class AdminAutoRunTask(View): """ 自动跑外放任务 " ...