你是否曾有過為了CRUD需求,寫一堆語法、設定Parameters參數,再透過IDbConnection Execute與資料庫進行交易?
當需求做完時,回頭發現一堆密密麻麻的語法,看了好不開心(;´༎ຶД༎ຶ`)
那有沒有什麼作法可以簡短這些語法呢?
並且還能針對特定資料異動更新 !
歡迎試試 Dapper Contrib (*´∀`)~♥ ~
簡介
Dapper.Contrib 提供CRUD的擴充方法,針對IDbConnection型別進行擴充,他會根據Model定義自動渲染SQL語法,對於簡單的CRUD情境相當適合,從原本需要Command以及Parameter的寫法,變成只需要Insert(Model)
使用Dapper.Contrib的前置作業
using Dapper.Contrib.Extensions;
[Table("Member")]
public class Member
{
[Key]
[ExplicitKey]
public Guid Id { get; set; }
[Computed]
public long SequenceId { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
說明上方使用到幾個Attribute
-
Key : 預設會把Id或是有 [Key] 指定為主鍵、自動運算的欄位,而不產生語法
-
ExplicitKey : 指定為主鍵,不是自動運算的欄位,要產生語法
-
Computed : 在執行Insert、Update操作時,不產生語法,該屬性的值是由資料庫計算而來,而不是由應用程式直接提供的
-
Table(”TableName”) : 預設使用Class Name當Table Name,這明確指定Table Name,不使用Class Name當Table Name
下一篇 將會帶領各位以實際專案狀況去修改程式
目標 : 把一堆SQL語法簡化,只需帶入對應資料表的Model即可