我有以下示例代码。目标是运行带有多个输入参数的 SQL 语句。
[<Literal>]
let connectionString = @"Data Source=Localhost;Initial Catalog=Instrument;Integrated Security=True"
[<Literal>]
let query = "SELECT MacroName, MacroCode FROM Instrument WHERE MacroCode IN (@codeName)"
type MacroQuery = SqlCommandProvider<query, connectionString>
let cmd = new MacroQuery()
let res = cmd.AsyncExecute(codeName= [|"CPI";"GDP"|]) |> Async.RunSynchronously
但是,codeName 被推断为字符串类型而不是数组或列表,并给我一个错误。
或者,我可以在没有 where 语句的情况下运行查询并根据结果进行过滤。但是,在许多其他返回数百万行的情况下,我希望在 SQL 服务器级别过滤数据以提高效率。
我在 fsharp.data.sqlclient 的文档中没有找到任何相关示例。请帮忙!