ORM框架——Dapper


1.什么是ORM

ORM(Object Relational Mapping)對象關系映射,是一種為了解決面向對象與關系數據庫存在的互不匹配的現象的技術,用於實現面向對象編程語言里不同類型系統的數據之間的轉換

2.C#中ORM框架

EF(entity framework),dapper,sqlsugar,Massive等

EF:ADO.NET Entity Framework 是微軟以 ADO.NET 為基礎所發展出來的對象關系對應 (O/R Mapping) 解決方案。該框架曾經為.NET Framework的一部分,但version 6之后從.NET Framework分離出來。

dapper:一款輕量級ORM工具

sqlsugar:SqlSugar是國人開發者開發的一款基於.NET的ORM框架,是可以運行在.NET 4.+ & .NET CORE的高性能、輕量級 ORM框架,眾多.NET框架中最容易使用的數據庫訪問技術。

massive:小巧,動態的微ORM框架。

3.Dapper

Dapper是一款輕量級ORM工具。如果在小的項目中,使用Entity Framework、NHibernate 來處理大數據訪問及關系映射,未免有點殺雞用牛刀。這個時候Dapper就是我們的不二選擇了

Dapper的話,性能優越,相比於EF之類的ORM框架,操作上更為簡單,並且也支持多種數據庫

3.1使用

通過nuget進行安裝

 

 

管理NuGet程序包,找到Dapper直接安裝就好,在解決方案管理器中查看引用包,如果有Dapper,說明安裝成功。 

還有一種方法可以直接去官網下載源代碼,有興趣可以去查一下資料學習一下,

然后安裝完成之后就可以使用Dapper進行CURD操作

新建了一個學生類

下面就直接貼代碼了

 public class StudentDAL
    {
        //數據庫連接字符串
        string conn = "Server=.;DataBase=DapperDemo;Trusted_Connection=True";

        /// <summary>
        /// 無條件查詢
        /// </summary>
        /// <returns></returns>
        public List<StudentModel> GetStudent() 
        {
            using (IDbConnection db=new SqlConnection(conn))
            {
                string sql = $"select * from Student";
                return db.Query<StudentModel>(sql).ToList();
            }
        }
        /// <summary>
        /// 查詢指定數據
        /// </summary>
        /// <param name="SName">學生姓名</param>
        /// <returns></returns>
        public List<StudentModel> QueryStudent(string SName) 
        {
            using (IDbConnection db = new SqlConnection(conn))
            {
                //用@作為參數
                string sql = $"select * from Student where SName=@SName";
                return db.Query<StudentModel>(sql, new { @SName= SName }).ToList();
                //這里的匿名對象參數與sql語句中的@參數相對應
            }
        }
        /// <summary>
        /// 添加
        /// </summary>
        /// <returns></returns>
        public int AddStudent(StudentModel model)
        {
            using (IDbConnection db = new SqlConnection(conn))
            {
                string sql = "insert into Student (SName,Sex,SAge) values" +
                    "(@SName,@Sex,@SAge)";
                return db.Execute(sql, new { @SName= model.SName,@Sex= model.Sex,@SAge= model.SAge}); 
            }
        }
        /// <summary>
        /// 刪除單條件
        /// </summary>
        /// <param name="SId">學生id</param>
        /// <returns></returns>
        public int DeleteStudent(int SId) 
        {
            using (IDbConnection db=new SqlConnection(conn))
            {
                string sql = "delete from Student where SId=@SId";
                return db.Execute(sql, new { SId = SId });
            }
        }
        /// <summary>
        /// 修改
        /// </summary>
        /// <returns></returns>
        public int UpdateStudent(StudentModel model)
        {
            using (IDbConnection db = new SqlConnection(conn))
            {
                string sql = "update Student set SName=@SName,Sex=@Sex,SAge=@SAge where SId=@SId";
                return db.Execute(sql, new { @SName = model.SName, @Sex = model.Sex, @SAge = model.SAge, @SId = model.SId });
            }
        }
    }

 

連接數據庫,緊接着進行curd操作,這就是dapper,總體來說也沒什么難點,使用起來特別簡單,接下來就在Controller調用測試一下

大功告成,寫下博客記錄一下

 


免責聲明!

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



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