当前位置: 首页 > news >正文

PetaPoco - 轻量级高性能的ORM框架(支持.NET Core)

我们都知道ORM全称叫做Object Relationship Mapper,也就是可以用object来map我们的db。

而且市面上的orm框架有很多,有重量级的Entity Framework,有轻量级的Dapper、PetaPoco等

 

假如你喜欢原生的Sql语句、又喜欢ORM的简单、又追求高性能,那么轻量级的ORM框架是你的不二选择。

说到轻量级ORM框架Dapper的名气比较大(因为出自名门?),但我却选择使用PetaPoco,因为:

  • 提供了更易用的API
    • Dapper仅提供了一系列Query的重载,用于将SQL映射为实体
    • PetaPoco除此之外还提供了Insert/Update/Delete/Save/分页等一系列Helper方法,如下图:
    • 还可以指定表名、主键等
    • 更详细示例用法请参见官网上的DEMO:http://www.toptensoftware.com/petapoco/
  • 性能与Dapper不相上下(我自测比Dapper更快)
    • 按Dapper官网(https://github.com/StackExchange/dapper-dot-net)的测试结果PetaPoco性能排名第4,Dapper第2
    • 第1是硬编码,第3的ServiceStack.OrmLite是收费的,并且依赖项太多,Dapper与PetaPoco都是单个.cs文件没依赖项
    • 我自己写的测试对比结果发现PetaPoco比Dapper要快,具体大家可自测

 

截至2016-10-05时PetaPoco还不支持.NET Core,但有源码移植到.NET Core上也不是难事,下面是我移植好的代码,大家可自行下载

下载地址:单击下载

 

相关文章:

  • jQuery基础:mouseeter( ) 与 mouseover( ) 区别
  • 为什么「教学相长」?
  • linux内核(kernel)版本号的意义
  • a+=b 是什么意思?
  • 模拟。。。 Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined) C
  • 端口聚合配置
  • iOS 2D绘图详解(Quartz 2D)之概述
  • java JVM : Xms Xmx PermSize MaxPermSize 区别
  • [svc]后台运行程序screen or nohup
  • 配置 L3 agent - 每天5分钟玩转 OpenStack(99)
  • LayDate使用
  • Java|序列化异常StreamCorruptedException的解决方法
  • 再用python写一个文本处理的东东
  • C#泛型-模板特化
  • Spring与Mybatis环境搭建 【转】
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • Angular 响应式表单 基础例子
  • CSS实用技巧
  • Git 使用集
  • HTTP 简介
  • HTTP--网络协议分层,http历史(二)
  • Java IO学习笔记一
  • Java,console输出实时的转向GUI textbox
  • Logstash 参考指南(目录)
  • maya建模与骨骼动画快速实现人工鱼
  • mysql外键的使用
  • PHP的类修饰符与访问修饰符
  • Redis中的lru算法实现
  • SpringBoot 实战 (三) | 配置文件详解
  • yii2中session跨域名的问题
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 马上搞懂 GeoJSON
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 通过调用文摘列表API获取文摘
  • 昨天1024程序员节,我故意写了个死循环~
  • ​Spring Boot 分片上传文件
  • #1015 : KMP算法
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • $$$$GB2312-80区位编码表$$$$
  • ${ }的特别功能
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (function(){})()的分步解析
  • (poj1.2.1)1970(筛选法模拟)
  • (第61天)多租户架构(CDB/PDB)
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (三)uboot源码分析
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (转) RFS+AutoItLibrary测试web对话框
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .class文件转换.java_从一个class文件深入理解Java字节码结构
  • .net流程开发平台的一些难点(1)