「Dapper」一個高效率輕量型 ORM 套件

一、前言

Dapper 是一個輕量化 ORM 的套件,可以寫出類似於 ADO.NET 的簡化語法,但保有 ORM 的特性,而相較於 Code FirstDapper 較為輕巧,因此筆者會依照專案的特性使用。

二、開發環境

  • 整合開發環境:Visual Studio 2019
  • 語言:C#
  • .net framework:4.6.2

三、範例資料庫

圖、範例資料庫

四、讀取

範例皆使用參數型方式操作資料庫,避免Sql Injection問題。

圖、範例程式碼

  • 原始碼(C#)
var conn = WebConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
using (var sb = new SqlConnection(conn))
{
    var data = sb.Query<Test>($"SELECT [a1],[a2] FROM [Test] where [Seq] = @Seq", new { Seq = 1 }).ToList();
    return data;
}

圖、執行結果

五、新增

範例皆使用參數型方式操作資料庫,避免Sql Injection問題。

圖、範例程式碼

  • 原始碼(C#)
var conn = WebConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
using (var sb = new SqlConnection(conn))
{
    var items = new List<Test> {
        new Test { a1 = "a1", a2 = "a2" },
        new Test { a1 = "a11", a2 = "a22" },
    };

    return sb.Execute($"INSERT INTO [Test] ([a1] ,[a2]) VALUES (@a1, @a2)", items);
}

圖、執行結果

六、修改

範例皆使用參數型方式操作資料庫,避免Sql Injection問題。

圖、範例程式碼

  • 原始碼(C#)
var conn = WebConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
using (var sb = new SqlConnection(conn))
{
    return sb.Execute($"UPDATE [Test] SET [a1] = @a1 WHERE [a2] = @a2", new { a1="a111", a2="a2" });
}

圖、執行結果

七、刪除

範例皆使用參數型方式操作資料庫,避免Sql Injection問題。

圖、範例程式碼

  • 原始碼(C#)
var conn = WebConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
using (var sb = new SqlConnection(conn))
{
    return sb.Execute($"DELETE FROM [dbo].[Test] where [Seq] > @Seq", new { Seq = "2" });
}

圖、執行結果

八、相關連結

  1. 使用「Visual Studio 2019」建置一個有 Mvc 和 Web Api 架構的網站
  2. 使用「CsvHelper」讀取、寫入 CSV 檔案
  3. 好用的資料庫管理工具「SQL Server 資料庫專案」
  4. 「NLog」與「Sql Server」資料庫的完美搭配
  5. 使用「ADO.NET」 進行資料庫的讀取、新增、修改、刪除的操作
  6. 使用「Entity Framework Tools」建立資料庫關聯模型
  7. https://weitechshare.blogspot.com/2020/12/code-first.html
  8. 使用「SqlBulkCopy」進行大量資料寫入
  9. 「linqkit」動態組裝 LINQ 條件的好用套件
  10. 「Dapper」一個高效率輕量型 ORM 套件

九、參考

  1. Dapper

留言

這個網誌中的熱門文章

使用「LINE Messaging API」發送 line 訊息

如何傳送訊息至「Teams」的 Channel

使用「NLog」來記錄應用程式的大小事吧

「Katalon Recorder」簡化測試腳本撰寫的工具

使用「Visual Studio 2019」建置一個有 Mvc 和 Web Api 架構的網站

「Chrome Headless」隱藏瀏覽器的介面,讓爬蟲程式偷偷的執行

使用「ADO.NET」 進行資料庫的讀取、新增、修改、刪除的操作

使用 Visual Studio 2019 實作「RESTful API」