Adding pipeline API?
This is a proposal to add a new API to this library.
When using plain Dapper, it would be useful to be able to pass CommandText, Parameters, etc. through the pipeline.
The following is an example code.
[<CLIMutable>]
type Customer = { Id: int; Name: string }
task {
use connection = // ...
do! connection.OpenAsync(cts.Token)
return!
"select Id, Name from Customer where ID = @ID"
|> CommandDef.create
|> CommandDef.withParameters {| ID = 42 |}
|> CommandDef.withCancellationToken cts.Token
|> connection.QuerySingleAsync<Customer>
}
It would be great to see Dapper.FSharp support the F# idiomatic pipeline API for plain Dapper cases.
Prototype: https://github.com/eagle-k/Dapper.FSharp.Pipeline
This prototype also includes support for F# Async. F# Async should come in handy when dealing with CancellationToken.
Hi @eagle-k,
I like this approach, but I am not sure how it will work with the current LINQ-like API (mainly based on computation expressions). I think this should be a separated project not necessarily based on Dapper.FSharp? 🤔