为什么选择Dapper,性能优越,各大网站的对比图,在超过500次poco serialization的过程中所表现的性能,Dapper是第二名
支持多数据库的本质是因为Dapper是对IDBConnection接口进行了方法扩展,比如你看到的SqlMapper.cs,一旦你这样做了,我们也知道,
SqlConnection,MysqlConnection,OracleConnection都是继承于DBConnection,而DBConnection又是实现了IDBConnection的接口
1.安装 Dapper
(1)打开NuGet添加引用Dapper,并安装
(2).如果不知道NuGet,就找到这个地址,cop下来复制到 程序包管理控制台
创建 table
CREATE TABLE [dbo].[Users]( [UserID] [int] IDENTITY(1,1) NOT NULL, [UserName] [varchar](50) NULL, [Email] [varchar](100) NULL, [Address] [varchar](100) NULL, CONSTRAINT [PK_Users] PRIMARY KEY CLUSTERED ( [UserID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
2.单条insert
IDbConnection connection = new SqlConnection("Data Source=.;Initial Catalog=DapperTest;Integrated Security=True;MultipleActiveResultSets=True"); var result = connection.Execute("Insert into Users values(@UserName,@Email,@Address)", new { UserName="jack",Email="123456@qq.com",Address="北京"});
3.批量
var userlist = Enumerable.Range(0, 10).Select(i => new Users() { Email = i + "QQ", UserName = i + "jack", Address = "asdf" + i }); var result2 = connection.Execute("Insert into Users values(@UserName,@Email,@Address)", userlist);
4.查询
IDbConnection connection = new SqlConnection("Data Source=.;Initial Catalog=DapperTest;Integrated Security=True;MultipleActiveResultSets=True"); var query = connection.Query<Users>("select * from Users where UserName=@UserName",new { UserName="jack"});
5.删除
IDbConnection connection = new SqlConnection("Data Source=.;Initial Catalog=DapperTest;Integrated Security=True;MultipleActiveResultSets=True"); var delete = connection.Execute("delete Users where UserID=@UserId ", new { UserID = 11 });
6.修改
IDbConnection connection = new SqlConnection("Data Source=.;Initial Catalog=DapperTest;Integrated Security=True;MultipleActiveResultSets=True"); var updatelist = connection.Execute("update Users set Email=@Email where UserID=@UserID", new { Email= "assadasdasd163.com",@UserId=6});