Dapper是一款輕量級ORM工具(Github)。如果你在小的項目中,使用Entity Framework、NHibernate 來處理大數據訪問及關系映射,未免有點殺雞用牛刀。你又覺得ORM省時省力,這時Dapper 將是你不二的選擇。
Dapper是.NET下一個micro的ORM,它和Entity Framework或Nhibnate不同,屬於輕量級的,並且是半自動的。Dapper只有一個代碼文件,完全開源,你可以放在項目里的任何位置,來實現數據到對象的ORM操作,體積小速度快。 使用ORM的好處是增、刪、改很快,不用自己寫sql,因為這都是重復技術含量低的工作,還有就是程序中大量的從數據庫中讀數據然后創建model,並為model字段賦值。這些ORM都可以輕松給你搞定。ORM給我們開發帶來便利時,性能也是一個讓我們不得不考慮的問題。一般的ORM性能和直接寫原生的sql比都差不少,但是Dapper性能還很錯,甚至和DbHelperSQL方式性能高出很多。
為什么選擇Dapper
- 輕量。只有一個文件(SqlMapper.cs)
- 速度快。Dapper的速度接近與IDataReader,取列表的數據超過了DataTable。
- 支持多種數據庫。Dapper可以在所有Ado.net Providers下工作,包括sqlite, sqlce, firebird, oracle, MySQL, PostgreSQL and SQL Server
- 可以映射一對一,一對多,多對多等多種關系。
- 性能高。通過Emit反射IDataReader的序列隊列,來快速的得到和產生對象,性能不錯。
- 支持FrameWork2.0,3.0,3.5,4.0,4.5
先簡單的了解一下Dapper的用法入門
Dapper的單條添加
public ActionResult SaveAdd(string name) { try { using (IDbConnection conn = new SqlConnection(ConnString)) { var a = conn.Execute($"insert into pm values('{name}')"); if (a > 0) { return Content("<script>alert('成功')</script>"); } else { return Content("<script>alert('失敗')</script>"); } } } catch (Exception e) { throw e; } }
Dapper的普通顯示
public ActionResult Show() { try { using (IDbConnection conn = new SqlConnection(ConnString)) { var list = conn.Query<Models.PM>("select * from pm").ToList(); return View(list); } } catch (Exception e) { throw e; } }
下一章講Dapper的一些復雜操作
