Dapper 在 F# 中需适配不可变数据和类型推导:用记录类型映射查询结果,DynamicParameters 传参,Async.AwaitTask 处理异步,字段名须严格匹配且大小写敏感。

Dapper 在 F# 项目中用起来很顺,关键是要适配 F# 的不可变数据和类型推导特性,而不是照搬 C# 写法。 它本身是 .NET 库,不区分语言,但 F# 的惯用写法会让代码更简洁、更安全。
1. 基础设置:引用与连接字符串
在 F# 项目(如 .fsproj)中添加 Dapper 包:
- 用 Paket:运行
paket add Dapper - 用 dotnet CLI:运行
dotnet add package Dapper
连接字符串建议放在配置中(如 appsettings.json),用 Microsoft.Extensions.Configuration 读取。F# 中可这样轻量封装:
let connectionString =
ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.Build()
.GetConnectionString("Default")登录后复制
2. 查询结果映射:优先用记录(Record)而非类
F# 记录天然支持不可变、结构相等、自动属性推导,比手动写 POCO 类更自然。Dapper 能直接映射到记录类型:
type User = { Id: int; Name: string; Email: string }
<p>// 查询返回序列(注意:Dapper 返回的是 IEnumerable<'T>,F# 中常用 seq<'T>)
let getUsers (conn: IDbConnection) : seq<User> =
conn.Query<User>"SELECT Id, Name, Email FROM Users"登录后复制
注意点:
标签: js json app ai microsoft c# 数据访问 .net
还木有评论哦,快来抢沙发吧~