Dapper 依赖 ADO.NET 的 IDbConnection 操作 SQLite,需选用 System.Data.SQLite 或 Microsoft.Data.Sqlite 驱动之一并安装对应 NuGet 包;连接字符串写法和兼容性略有差异,推荐 .NET 5+ 使用 Microsoft.Data.Sqlite。

Dapper 本身不负责连接数据库,它依赖 ADO.NET 提供的 IDbConnection 实现。要让 Dapper 操作 SQLite,关键在于正确创建并打开一个 SQLite 连接对象,再交由 Dapper 使用。
确认使用的 SQLite 驱动类型
目前主流有两种 .NET SQLite 驱动,不能混用:
-
System.Data.SQLite:传统老牌驱动,需引用
System.Data.SQLite.dll和SQLite.Interop.dll(注意 x86/x64 匹配) -
Microsoft.Data.Sqlite:微软官方维护、轻量、跨平台(.NET Core/.NET 5+ 推荐),依赖
Microsoft.Data.SqliteNuGet 包
项目中只选其一。Dapper 对两者都兼容,但连接写法略有差异。
安装必要 NuGet 包
无论选哪种驱动,Dapper 都必须安装:
-
Dapper(核心 ORM 扩展)
再按驱动选装:
- 用 System.Data.SQLite:安装
System.Data.SQLite或System.Data.SQLite.Core - 用 Microsoft.Data.Sqlite:安装
Microsoft.Data.Sqlite
创建并使用 SQLite 连接(两种写法)
方式一:System.Data.SQLite(适合 .NET Framework 项目)
string connStr = @"Data Source=D:\mydb.db;Version=3;";
using (var conn = new System.Data.SQLite.SQLiteConnection(connStr))
{
conn.Open();
var users = conn.Query<User>("SELECT * FROM users");
}方式二:Microsoft.Data.Sqlite(推荐用于 .NET 5/6/7/8 及跨平台)
string connStr = "Data Source=mydb.db";
using (var conn = new Microsoft.Data.Sqlite.SqliteConnection(connStr))
{
conn.Open();
var products = conn.Query<Product>("SELECT * FROM products");
}注意:Microsoft.Data.Sqlite 的连接字符串不强制加 Version=3,默认即 v3;而 System.Data.SQLite 建议显式指定。
实用技巧与避坑点
- 内存数据库测试:用
Data Source=:memory:快速建临时库,连接关闭即销毁,适合单元测试 - 路径问题:Windows 下建议用绝对路径或
Environment.CurrentDirectory拼接,避免找不到文件 - 中文乱码:若读写中文异常,可在连接字符串加
Charset=utf8(仅System.Data.SQLite支持) - GUID 存储:如需把 Guid 当文本存(方便查看),加
BinaryGUID=False到连接串 - 线程安全:SQLite 是单写多读模型,高并发写入需自行加锁或用 WAL 模式
基本上就这些。选对驱动、装对包、连对字符串,Dapper 就能顺滑操作 SQLite。

















