1. 程式人生 > >【快速入門ORM框架之Dapper】大牛勿進系列

【快速入門ORM框架之Dapper】大牛勿進系列

前言:dapper是什麼?Dapper是.NET下一個micro的ORM,它和Entity Framework或Nhibnate不同,屬於輕量級的,並且是半自動的。也就是說實體類都要自己寫。它沒有複雜的配置檔案,一個單檔案就可以了。

使用:在專案中nuget下載即可,dapper如何使用呢?它和EF不同,我們什麼的配置都需要手寫,連線配置,實體,上下文,這和ADO.NET有一點相似點。

實戰:

 配置Users表

create database	TextInfo
USE TEXTINFO
create table Users
(
	UserID INT IDENTITY(1,1) NOT NULL,
	UserName varchar(50) Null,
	Email [varchar](100) Null,
	[Address] [varchar](100) Null
)

 建立連線字串

<connectionStrings>
    <add name="CnnhoRechargePlatformConnectionString" connectionString="Data Source=DESKTOP-OEJGKOO;Initial Catalog=TextInfo;Integrated Security=True"/>
  </connectionStrings>

   IDbConnection說明  

//讀取config中的字串
string connstr = ConfigurationManager.ConnectionStrings["CnnhoRechargePlatformConnectionString"].ToString();
 //IDbConnection
IDbConnection connection = new SqlConnection(connstr);

我們都知道Sqlconnection繼承了DbConnection,那我們再去DbConnection中一探究竟,發現DbConnection繼承於IDbConnection,所以呢dapper就是通過這種方式進行了多資料的封裝,dapper就是實現了這種介面支援多資料庫的特性也就產生了!

 

Insert插入與InsertBulk

 insert:

 var result = connection.Execute("insert into Users values(@UserName,@Email,@Address)",new { UserName = "zara",Email="
[email protected]
",Address="上海浦東"});

在這裡支援匿名物件傳入進行插入,非常的人性化哈!你可以發現dapper我們又開始寫sql了,沒錯,這個博主上面沒有提到,我們從微軟的高度封裝中逃了出來?可以這麼比喻!對吧。。

 insertBulk:

既然是Bulk操作,那一定是批量操作了,我們就可以把這個匿名物件程式設計匿名物件集合,這樣就OK了

var userList = Enumerable.Range(0, 10).Select(i => new
            {
                Email = "[email protected]",
                Address = "安徽",
                UserName = "jack"
            });

            var result = connection.Execute("insert into Users values(@UserName,@Email,@Address)",userList);

 這樣我們就插入了10個,這種操作為了demo,其道理也是非常得離譜。

Query(select)

為了查詢我們定義一個UserModel

 public class User
    {
        public int UserID { get; set; }
        public string UserName { get; set; }
        public string Email { get; set; }
        public string Address { get; set; }
    }
 var query = connection.Query<User>("select * from Users where UserName = @userName",new { UserName = "zara" });

 

Update(Edit)

這個操作和上面的幾乎沒什麼差別就是改了下sql

 var query = connection.Query<User>("update Users set UserName='zzh' where UserName = @UserName",new { UserName = "zara" });

Delete

這個操作和上面也差不多,非常簡單的哈。

 var query = connection.Query<User>("delete  * from Users where UserName = @UserName",new { UserName = "zara" });

好了,希望你看完本片文章會讓你對dapper有一個基本的認識,如果覺得寫的可以話,點個贊吧!