Dapper


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

  1. 輕量。只有一個文件(SqlMapper.cs
  2. 速度快。Dapper的速度接近與IDataReader,取列表的數據超過了DataTable。
  3. 支持多種數據庫。Dapper可以在所有Ado.net Providers下工作,包括sqlite, sqlce, firebird, oracle, MySQL, PostgreSQL and SQL Server
  4. 可以映射一對一,一對多,多對多等多種關系。
  5. 性能高。通過Emit反射IDataReader的序列隊列,來快速的得到和產生對象,性能不錯。
  6. 支持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;
            }
        }
View Code

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;
            }

        }
View Code

下一章講Dapper的一些復雜操作


免責聲明!

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



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