目錄
快,讀取資料接近idatareader。
支援大部分主流的資料庫,如:ms sql,oracle,mysql,sqlite等等。
支援對映一對一,一對多,多對多關係。
示例中需要用到兩個實體型別,分別為post.cs和user.cs。
1
2
3
4
5
6
7
8
9
10
11
12
13
public
class
post
public
string
title
public
string
content
public
user user
}
public
class
user
public
string
name
}
建立表指令碼:
create table [dbo].[post]([id] [
int] identity(1,1
) not null,
[title] [nvarchar](
50) null,
[content] [nvarchar](
2000
) null,
[userid] [
int] null,
constraint [pk_post] primary key clustered
( [id] asc
)with (pad_index = off, statistics_norecompute = off, ignore_dup_key = off, allow_row_locks = on, allow_page_locks =on) on [primary]
) on [primary]
create table [dbo].[user](
[id] [
int] identity(1,1
) not null,
[name] [nvarchar](
20) null,
primary key clustered
( [id] asc
)with (pad_index = off, statistics_norecompute = off, ignore_dup_key = off, allow_row_locks = on, allow_page_locks =on) on [primary]
) on [primary]
publicclass
dbhelper
public
static
void
closeconnection()}}
//////
/// class
program
//示例2:簡單查詢,返回動態列表
console.writeline("
示例2:簡單查詢,返回動態列表");
var result2 = conn.query("
select id,title,content from post");
foreach (var item in
result1)
//示例3:帶引數的查詢
console.writeline("
示例3:帶引數的查詢");
var result3 = conn.query("
select id,title,content from post where userid=@userid
", new );
foreach (var item in
result3)
//示例4:執行沒有返回結果的命名
//test04(conn);
//示例5:執行多次指令碼
"示例5:執行多次指令碼");
"insert into [user](name) values(@name)", new , new , new });
////示例6:返回多個結果
console.writeline("
示例6:返回多個結果");
string sql = @"
select * from post where id=@id
select * from [user] where id=@id";
using (var multi = conn.querymultiple(sql, new ))
//示例7:執行儲存過程
console.writeline("
示例7:執行儲存過程");
var result7 = conn.query("
sp_getpost
", new , commandtype: commandtype.storedprocedure);
foreach (var item in
result7)
//示例8:一對多對映,返回的一行資料對映到資料庫多張表
console.writeline("
示例8:一對多對映");
string sqlonetomulti = "
select * from post p inner join [user] u on p.userid=u.id";
//query
var data = conn.query(sqlonetomulti, (post, user) => );
dbhelper.closeconnection();
console.read();}}
ORM框架 Dapper案例
查詢列表 查詢的sql 替換引數 public static listquery string sql,object param 查詢第乙個資料 public static t queryfirst string sql,object param 返回乙個物件集合 public static lis...
ORM框架Dapper詳細教程
輕量級 通過實現idbconnection的擴充套件方法 所有例項方法需要自己寫 它是通過sql與表的對映功能首先建立乙個.net core專案 根據sql查詢 查詢語句需要對映的類 查詢語句 public t select string sql 查詢sql返回的行數 public int exec...
《解剖PetShop》系列之三
解剖petshop 系列之三 三 petshop資料訪問層之訊息處理 在進行系統設計時,除了對安全 事務等問題給與足夠的重視外,效能也是乙個不可避免的問題所在,尤其是乙個b s結構的軟體系統,必須充分地考慮訪問量 資料流量 伺服器負荷的問題。解決效能的瓶頸,除了對硬體系統進行公升級外,軟體設計的合理...