我有以下示例代码.目的是运行具有多个输入参数的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推断为字符串类型,而不是数组或列表,并给我一个错误.
或者,我可以运行查询而不使用根据结果的语句和过滤器.然而,在许多返回数百万行的其他情况下,我宁愿在sql Server级别筛选数据更有效率.
我没有在fsharp.data.sqlclient的文档中找到任何相关的示例.请帮忙!
解决方法
@H_502_13@ “参见表值参数(TVP)”一节中的文档:http://fsprojects.github.io/FSharp.Data.SqlClient/configuration%20and%20input.html