Dapper F# - A Parameterless default 一个无参数的默认构造函数或一个匹配的签名
Dapper F# - A Parameterless default A parameterless default constructor or one matching signature
出于演示目的,我正在制作一个插入函数,我想 return 传入类型的变量。
我是初始查询的用户 Dapper.fsharp,然后我想 运行 原始 SQL 查询以获取最后插入的值。
所以我有这样的东西用于演示目的
let Insert<'a> asyncQuery =
asyncQuery
|> connection.InsertAsync<'a>
|> RunSynchronously
|> ignore
(*This is a Dapper.fsharp query. Running this returns the number of rows inserted (int) *)
let table = asyncQuery.Table (*This is a string*)
let result =
connection.Query<'a>($"""Select * From {table} Where id = (select last_insert_id())""") (*Should return an IENumerable of type 'a*)
|> EnumerableToArray
result |> first
然后就叫做like
let newSession =
insert {
table "sessions"
value newSession
} |> Insert
其中 newSession 是会话类型
module Session
type session = {id: int; session_id: string; clerk_json: string; clerk_id: int; expires: int}
(*This is also the structure of the SQL table exactly*)
我得到的错误是
"A parameterless default constructor or one matching signature (System.Int32 id, System.String session_id, System.Int32 clerk_id, System.String clerk_json, System.Int32 expires) is required for Session+session materialization"
这向我表明它没有从数据库中获得正确的类型签名,但列名和类型匹配,table 中没有任何内容为空。
也许我忽略了一些简单的事情或误解了应该如何使用该库?
类型必须是 [<CLIMutable>]
...
出于演示目的,我正在制作一个插入函数,我想 return 传入类型的变量。
我是初始查询的用户 Dapper.fsharp,然后我想 运行 原始 SQL 查询以获取最后插入的值。
所以我有这样的东西用于演示目的
let Insert<'a> asyncQuery =
asyncQuery
|> connection.InsertAsync<'a>
|> RunSynchronously
|> ignore
(*This is a Dapper.fsharp query. Running this returns the number of rows inserted (int) *)
let table = asyncQuery.Table (*This is a string*)
let result =
connection.Query<'a>($"""Select * From {table} Where id = (select last_insert_id())""") (*Should return an IENumerable of type 'a*)
|> EnumerableToArray
result |> first
然后就叫做like
let newSession =
insert {
table "sessions"
value newSession
} |> Insert
其中 newSession 是会话类型
module Session
type session = {id: int; session_id: string; clerk_json: string; clerk_id: int; expires: int}
(*This is also the structure of the SQL table exactly*)
我得到的错误是
"A parameterless default constructor or one matching signature (System.Int32 id, System.String session_id, System.Int32 clerk_id, System.String clerk_json, System.Int32 expires) is required for Session+session materialization"
这向我表明它没有从数据库中获得正确的类型签名,但列名和类型匹配,table 中没有任何内容为空。
也许我忽略了一些简单的事情或误解了应该如何使用该库?
类型必须是 [<CLIMutable>]
...