.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

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM