轻量级ORM框架 第一篇:Dapper

为什么选择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="[email protected]",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});

  

 

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