.NET ORM 哪家强

 

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

 

自动分表

 

是ORM中唯一支持自动分表的ORM框架,.NET中并无相关框架,使用SqlSugar分表可以轻松处理产品历史数据, 日志,提高性能,对于上亿的流水数据分表是不错的选择

 

最爽的导航查询

var list=db.Queryable<Test>()
           .Includes(x => x.Provinces,x=>x.Citys ,x=>x.Street) 
           .Includes(x => x.ClassInfo)// 一级查询
           .ToList();

 

最爽的联表查询

var query5 = db.Queryable<Order>()
            .LeftJoin<Custom>   ((o, cus ) => o.CustomId == cus.Id)//多个条件用&&
            .LeftJoin<OrderDetail> ((o, cus, oritem) => o.Id == oritem.OrderId)
            .Where(o => o.Id == 1)  
            .Select(o =>o)
            .ToList();

  

 

最爽的写SQL

db.SqlQueryable<Student>("select * from student").OrderBy("id asc").ToPageList(1, 2,ref total)

  

 代码下载

https://github.com/sunkaixuan/SqlSugar

 

posted @ 2016-07-15 01:14  阿妮亚  阅读(7168)  评论(13编辑  收藏  举报