你的位置:首页 > 软件开发 > ASP.net > .NET ORM 哪家强

.NET ORM 哪家强

发布时间:2016-07-15 02:00:11
ORM到底哪家强? 很多人都想知道这个问题,自已也没测试过,只能道听途说。闲的无聊就将几个ORM拿出来比一比,假如怀疑测试代码有问题可以将它下载下来慢慢研究。 参赛ORM 1、SqlSugar:是一款轻量级的MSSQL ORM ,除了具有媲美ADO的性能外还具有和EF相似 ...

 

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

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

 

参赛ORM

 

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

 

2、Chloe ORM: 模仿EF代码风格与设计的一款轻量级高性能ORM ,地址:http://www.cnblogs.com/so9527/

 

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

 

4、EF6.0: .NET官方ORM

 

 

测试结果:

.NET ORM 哪家强

 

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

 

 

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

 

 

测试代码切片

.NET ORM 哪家强.NET ORM 哪家强
using System.Data.Entity;using System.Data.Entity.ModelConfiguration.Conventions;using System.Linq;using System.Text;using System.Threading.Tasks;using SqlSugar;using SyntacticSugar;using Dapper;using System.Data.SqlClient;using System;using Chloe.SqlServer;namespace ORMTest{  /// <summary>  /// 查询所有  /// </summary>  public class SelectAll  {    public static void Execute(int count,string title) {      Console.WriteLine(title);      PerHelper.Execute(count, " SqlSugar Queryable ", () =>      {        using (SqlSugarClient db = new SqlSugarClient(ConfigSugar.GetConfigString("SchoolContext")))        {          var list = db.Queryable<Student>().ToList();        }      });      PerHelper.Execute(count, " SqlSugar Sqlable ", () =>      {        using (SqlSugarClient db = new SqlSugarClient(ConfigSugar.GetConfigString("SchoolContext")))        {          var list = db.Sqlable().From<Student>("t").SelectToList<Student>("*");        }      });      PerHelper.Execute(count, " SqlSugar SqlQuery ", () =>      {        using (SqlSugarClient db = new SqlSugarClient(ConfigSugar.GetConfigString("SchoolContext")))        {          var list = db.SqlQuery<Student>("select * from Student");        }      });      PerHelper.Execute(count, " Chloe ORM Query", () =>      {        using (MsSqlContext context = new MsSqlContext(ConfigSugar.GetConfigString("SchoolContext")))        {          var list = context.Query<Student>().ToList();        }      });      PerHelper.Execute(count, " Chloe ORM SqlQuery", () =>      {        using (MsSqlContext context = new MsSqlContext(ConfigSugar.GetConfigString("SchoolContext")))        {          var list = context.SqlQuery<Student>("select * from Student").ToList();        }      });      PerHelper.Execute(count, " EF6.0 ", () =>      {        using (SchoolContext sc = new SchoolContext())        {          var list = sc.Students.AsNoTracking().ToList();        }      });      PerHelper.Execute(count, " Dapper Sql ", () =>      {        using (SqlConnection conn = new SqlConnection(ConfigSugar.GetConfigString("SchoolContext")))        {          var list = conn.Query<Student>("select * from Student").ToList(); ;        }      });      Console.WriteLine("");    }  }}

原标题:.NET ORM 哪家强

关键词:.NET

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。