.net之ORM框架Dapper.net 之增刪改查

Dapper介紹

Dapper是一款輕量級ORM工具(Github)。如果你在小的項目中,使用Entity Framework、NHibernate 來處理大數據訪問及關係映射,未免有點殺雞用牛刀。你又覺得ORM省時省力,這時Dapper 將是你不二的選擇。

Dapper優點

  1. 輕量。只有一個文件(SqlMapper.cs),編譯完成之後只有120k(好象是變胖了)
  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.Net程序包,在解決方案中右鍵點開,選擇管理NuGet程序包


在搜索框中輸入dapper,選擇Dapper dot net async 點擊安裝,安裝完成以後,程序會自動引用Dapper



這些工作完成後,Dapper框架就可以使用了

Dapper使用Demo 增刪改查
使用Dapper操作的實體類必須跟數據庫的字段名對應
需要引入命名空間using Dapper;
SqlConnection連接字符串
string sqlconn = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;

新增
            using (IDbConnection conn = new SqlConnection(sqlconn))
            {
                //新增
                Student stu = new Student() { stuName = "王五", stuAge = 19, stuSex = "女" };
                string strsql = @"insert into student (stuName,stuAge,stuSex) values (@stuName,@stuAge,@stuSex)";
                int result= conn.Execute(strsql, stu);
                if (result > 0)
                    Console.WriteLine("插入成功!");
                else
                    Console.WriteLine("插入失敗!");
            }

修改
            using (IDbConnection conn = new SqlConnection(sqlconn))
            {
                //修改
                Student stu = new Student() { stuName = "李四", stuAge = 20, stuSex = "女", stuID = 1 };
                string strsql = @"update student set stuName=@stuName,stuAge=@stuAge where stuID=@stuID";
                int result= conn.Execute(strsql, stu);
                if (result > 0)
                    Console.WriteLine("修改成功!");
                else
                    Console.WriteLine("修改失敗!");

            }

刪除
            using (IDbConnection conn = new SqlConnection(sqlconn))
            {
                //刪除
                Student stu = new Student() { stuID = 1 };
                string strsql = @"delete student where stuID=@stuID";
                int result= conn.Execute(strsql, stu);
                if (result > 0)
                    Console.WriteLine("刪除成功!");
                else
                    Console.WriteLine("刪除失敗!");
            }

查詢
            using (IDbConnection conn = new SqlConnection(sqlconn))
            {
                //查詢
                string strsql = @"select * from Student";
                List<Student> stuList = conn.Query<Student>(strsql).ToList();                
                stuList.ForEach((item) =>
                {
                    Console.WriteLine("主鍵ID:" + item.stuID + " 姓名:" + item.stuName + " 年齡:" + item.stuAge + " 性別:" + item.stuSex);
                });
            }









發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章