ORM到底哪家强? 很多人都想知道这个问题,自已也没测试过,只能道听途说。

闲的无聊就将几个ORM拿出来比一比,假如怀疑测试代码有问题可以将它下载下来慢慢研究。

参赛ORM

1、SqlSugar:是一款轻量级的MSSQL ORM ,除了具有媲美ADO的性能外还具有和EF相似简单易用的语法,地址:http://www.cnblogs.com/sunkaixuan/p/5654695.html

2、Dapper ORM : 是一个轻型的ORM类。代码就一个SqlMapper.cs文件,主要是IDbConnection的扩展方法,官方站点http://code.google.com/p/dapper-dot-net/ ,也可以通过Nuget进行安装

3、EF6.0: .NET官方ORM

测试结果:

从测试代码可以看出 SqlSugar Dapper 的性能都是差不多的,EF就有些不尽人意

将EF改成AsNoTracking又测了几次,【查询所有】性能有所提升但是还是最慢, 查询单条和分页AsNoTracking貌似没什么效果

总结:

SqlSugar继承了 EF的功能功能,也有Dapper的性能,是一款非常强大的ORM

SqlSugar 4.0 三表查询并分页

   int total=0;
var list8 = db.Queryable<Student,School,School>((st,sc,sc2) =>st.SchoolId ==sc.Id&&sc.Id ==sc2.Id)
.Select((st, sc, sc2) =>new{st.Name,st.Id,schoolName = sc.Name})
.ToPageList(1, 2,ref total)

EF 二表查询并分页

var queryable = (from in StudentList

                      join in SchoolList1
                      on a.Id equals b.Id into b1
                      from b2 in b1.DefaultIfEmpty()
                      select new
                      {
                          a.Id,
                          a.Name,
                          t = b2.Name
  
                      });
var listp = queryable.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();
var total = queryable.Count();

从上面的语法可以看出两者之前的差距,3表查询比EF2表查询还要简洁

代码下载

https://github.com/sunkaixuan/SqlSugar

最新文章

  1. Android Studio一些常用快捷键及快捷键冲突解决
  2. JavaScript学习笔记- 省市级联效果
  3. 一个TextView内显示不同颜色的文字
  4. 斐波那契数[XDU1049]
  5. 网页加载图片问题 插件lazyload
  6. SSH项目整合教学Eclipse搭建SSH(Struts2+Spring3+Hibernate3)
  7. node开发 npm install -g express-generator@4
  8. DevExpress BarManager 部分用法
  9. Jquery post 传递数组给asp.net mvc方法
  10. HeadFirst设计模式之适配器模式
  11. IP地址的分类——a,b,c 类是怎样划分的
  12. Robotium---环境搭建及入门示例
  13. Ajax:Cross-Origin Resource Sharing(转)
  14. 从事务角度粗窥架构的可扩展性和可维护性:内容整理自java web轻量级开发面试教程
  15. SpringMVC对包的扫描范围扩大后,导致的事务配置不生效问题
  16. Socket编程实践(7) --Socket-Class封装(改进版v2)
  17. JVM学习--(三)配置参数
  18. pip命令出现了问题,提示说找不到ssl模块
  19. python3 lcs 最大公共子序列
  20. Devexpress使用之:GridControl控件

热门文章

  1. Number Range 管理之并行缓冲
  2. 工作组环境下管理windows.
  3. 从零开始--系统深入学习IOS(使用Swift---带链接)
  4. 利用 Python 只连接一次 MySQL
  5. 发布订阅 - 基于A2DFramework的事件机制实现
  6. ldr和adr在使用标号表达式作为操作数的区别
  7. 【字符串排序】n个数连接得到最小或最大的多位整数
  8. ECShop商品详细页 实现尺码颜色关联显示库存数量
  9. android 开发 - 对图片进行虚化(毛玻璃效果,模糊)
  10. 把Arraylist转换成GameObject[]