前言: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="zaranet@163.com",Address="上海浦東"});

在這里支持匿名對象傳入進行插入,非常的人性化哈!你可以發現dapper我們又開始寫sql了,沒錯,這個博主上面沒有提到,我們從微軟的高度封裝中逃了出來?可以這么比喻!對吧。。
insertBulk:
既然是Bulk操作,那一定是批量操作了,我們就可以把這個匿名對象編程匿名對象集合,這樣就OK了
var userList = Enumerable.Range(0, 10).Select(i => new
{
Email = "zaranet@qq.com",
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有一個基本的認識,如果覺得寫的可以話,點個贊吧!👍
