Dapper是.Net下的一个轻量级ORM框架.在小型工具向的项目下,使用Dapper会使数据库操作层代码更加优雅.
在项目中使用引用Dapper非常简单,你可以选择两种方式:
Dapper 项目地址 https://github.com/StackExchange/Dapper
添加项目 Dapper 到你自己的项目当中去,这样可以直接调试Dapper的源代码
个人感觉添加源代码到项目当中比较可靠,遇到问题可以直接跟踪
Dapper项目
添加Dapper源代码到项目当中
表结构
1 CREATE TABLE [dbo].[BAS_NAME]( 2 [ID] [INT] NULL, 3 [NAME] [VARCHAR](50) NULL, 4 [OTHER] [VARCHAR](50) NULL, 5 [DATE] [DATETIME] NULL 6 ) ON [PRIMARY]
代码中看出,直接使用Execute加实体的方式相比传统 SqlParameter的方式更加方便.
1 IDbConnection conn = new SqlConnection(connectionString); 2 //Insert 3 string insetSql = "INSERT dbo.BAS_NAME(ID, NAME, OTHER, DATE)VALUES(@ID, @NAME, @OTHER, @DATE)"; 4 BAS_NAME nameInfo = new BAS_NAME(); 5 nameInfo.ID = 0; 6 nameInfo.NAME = "小王"; 7 nameInfo.OTHER = string.Empty; 8 nameInfo.DATE = DateTime.Now; 9 var result = conn.Execute(insetSql, nameInfo); 10 11 Console.Write(result); 12 Console.ReadKey();
当然了你也可以使用这种方式新增行
1 var result = 2 conn.Execute(insetSql, new {ID = 1,NAME = "小李",OTHER="233",DATE = DateTime.Now });
和Insert类似
1 BAS_NAME nameInfo = new BAS_NAME(); 2 nameInfo.ID = 0; 3 nameInfo.NAME = "小王233"; 4 nameInfo.OTHER = "233"; 5 nameInfo.DATE = DateTime.Now; 6 7 string upDateSql = " UPDATE dbo.BAS_NAME SET NAME = @NAME,OTHER= @OTHER,[DATE] = @DATE WHERE ID = @ID"; 8 9 var result = conn.Execute(upDateSql, nameInfo);
string selectSql = "SELECT * FROM BAS_NAME"; List<BAS_NAME> basNameList = conn.Query<BAS_NAME>(selectSql).ToList(); selectSql = "SELECT * FROM BAS_NAME WHERE ID = @ID"; basNameList = conn.Query<BAS_NAME>(selectSql,new { ID = 1 }).ToList();
var result = conn.Execute("DELETE FROM dbo.BAS_NAME WHERE ID = @ID", new { ID = 0 });