【快速入門ORM框架之Dapper】大牛勿進系列
阿新 • • 發佈:2018-12-27
前言: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有一個基本的認識,如果覺得寫的可以話,點個贊吧!