C# 資料操作系列 - 17 Dapper ——號稱可以與ADO.NET 同臺飆車的ORM
阿新 • • 發佈:2020-05-27
# 0. 前言
之前四篇介紹了一個國內開發者開發的優秀框架SqlSugar,給我們眼前一亮的感覺。這一篇,我們將試試另一個出鏡率比較高的ORM框架-Dapper。
Dapper是一個輕量級的ORM框架,其以高速、簡單易用為特點。在某些時候,效率甚至可以與ADO.NET 媲美。那麼,吹得天花亂墜,就讓我們實際看看它的表現吧。
# 1. 開始使用
照例,先建立一個專案:DapperDemo
```bash
dotnet new console --name DapperDemo
```
然後切換到目錄裡:
```bash
cd DapperDemo
```
新增包支援:
```bash
dotnet add package Dapper
```
如果不出意外的話,目前專案中已經安裝好了Dapper。現在就讓我們開始愉快的使用吧。
首先,需要注意的一點是,與其他的ORM框架不同的是,Dapper需要我們手動建立一個IConnection。Dapper的所有操作都是依託於IConnection來操作,而且Dapper將其支援的方法封裝成了IConnection的擴充套件方法。
所以,在使用之前我們需要先建立一個IConnection。為了方便演示,我把之前SqlSugar演示用過的測試資料庫拿過來了,是一個SQLite,所以我們需要先安裝一個SQLite的驅動:
```bash
dotnet add package Microsoft.Data.SQLite
```
在Program.cs中引入兩個包:
```c#
using Microsoft.Data.Sqlite;
using Dapper;
```
在Main方法裡建立一個IConnection:
```c#
using(var connection = new SqliteConnection("Data Source=./demo.db"))
{
}
```
# 2. 多資料查詢
Dapper的查詢相當簡單:
```c#
var result = connection.Query("select * from Persion");
```
傳入一個SQL語句,返回一個可列舉物件。如果不指定型別,將返回型別為dynamic的列表。我們來看一下Query方法的相關宣告:
```c#
public static IEn