Dapper介紹
Dapper是一款輕量級ORM工具(Github)。如果你在小的項目中,使用Entity
Framework、NHibernate 來處理大數據訪問及關係映射,未免有點殺雞用牛刀。你又覺得ORM省時省力,這時Dapper 將是你不二的選擇。
Dapper優點
- 輕量。只有一個文件(SqlMapper.cs),編譯完成之後只有120k(好象是變胖了)
- 速度快。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
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);
});
}