Pass Dapper Parameter With TVP

RiCo 技術農場
RiCosNote
Published in
5 min readSep 11, 2020

--

很久以前兩篇文章都是透過TVP來提高Insert、Update、Delete效能

提高 Insert 效能

提高 Update、Delete 效能

文章內容都是使用 aso.net 來傳入TVP參數到stored procedure,

目前我們系統呼叫 stored procedure 一率都使用Dapper,

以前到現在,我遇到滿多開發人員對我說,

Net Core下使用 Dapper 無法傳入TVP參數到stored procedure的錯誤,

但使用 Dapper就只是寫法不同而已,

直接留下 code 方便日後貼文章給有需要的朋友

CREATE or alter  PROC [dbo].[QueryDepartments] (@id int,@name nvarchar(50),@tblDepartment dbo.TVP_Department readonly)ASBEGINset nocount on;SELECT DepartmentID,[Name],GroupNameFROM dbo.Departmentwhere DepartmentID =@idand [Name]=@nameunion allselect *from @tblDepartmentENDGO
-----C#------
using (var conn = db.Database.GetDbConnection()){var sql = "exec [dbo].[QueryDepartments] @id,@name,@tblDepartment";var paras = new DynamicParameters();paras.Add("id", 200001, DbType.Int32);paras.Add("name", "Add 200000", DbType.String);paras.Add("tblDepartment", dt.AsTableValuedParameter("dbo.TVP_Department"));var result = await conn.QueryAsync<Department>(sql, param: paras, transaction: null, commandTimeout: 180, commandType: CommandType.Text).ConfigureAwait(false);result.ToList().ForEach(c => Console.WriteLine(c.DepartmentID));}

結果:

— 工商實戰課程和組合包 —

SQL Server 實戰效能調校系列 & 深入淺出EF Core3 組合包
https://hiskio.com/packages/W1wVgzyzq

SQL Server 實戰效能調校系列 & K8S 開發人員篇 組合包
https://hiskio.com/packages/8LwvD3Rgj

SQL Server Love Linux系列 & 效能調校四部曲 全組合包
https://hiskio.com/packages/MQRm2Dr0d

SQL Server Love Linux|全系列組合包
https://hiskio.com/packages/ZzraD6Rg8

SQL Server實戰效能調校|四部曲組合包
https://hiskio.com/packages/gOyLLvyA1

深入淺出Entity Framework Core 3
優惠碼: RERKZ73
https://hiskio.com/courses/365/about?promo_code=RERKZ73

Kubernetes從0到1 | 開發人員篇
優惠碼: LG2XNRE
https://hiskio.com/courses/338?promo_code=LG2XNRE

第一部曲: TSQL優化
優惠碼: VE9Q0QE
https://hiskio.com/courses/267?promo_code=VE9Q0QE

第二部曲: 資料表索引
優惠碼: QE86JVG
https://hiskio.com/courses/270?promo_code=QE86JVG

第三部曲: 執行計畫
優惠碼: LEOVMQG
https://hiskio.com/courses/271?promo_code=LEOVMQG

第四部曲:縱橫交易
優惠碼: WG45OQ3
https://hiskio.com/courses/272?promo_code=WG45OQ3

SQL Server Love Linux|基礎篇
優惠碼:J3MZO5E
https://hiskio.com/courses/273?promo_code=J3MZO5E

SQL Server Love Linux | 管理篇
優惠碼 : JGZLNR3
https://hiskio.com/courses/280?promo_code=JGZLNR3

SQL Server Love Linux | 效能篇
優惠碼 : NEXL8YE
https://hiskio.com/courses/288?promo_code=NEXL8YE

射茶包|SQL Server連線問題排除實戰
優惠碼 : 6G6NZNG
https://hiskio.com/courses/268?promo_code=6G6NZNG

射茶包|挽救毀損資料庫實戰
優惠碼 : 13KOXPE
https://hiskio.com/courses/269?promo_code=13KOXPE

--

--

RiCo 技術農場
RiCosNote

分享工作上實戰經驗,如SQL Server,NetCore,C#,WEBApi,Kafka,Azure…等,Architect,Software Engineer, Technical Manger,Writer and Speaker