Ho il seguente codice di esempio. L'obiettivo è eseguire istruzioni SQL con più parametri di input.Come utilizzare l'istruzione SQL IN in fsharp.data.sqlclient?
[<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
Tuttavia, Codename viene dedotto essere di tipo stringa invece di un array o lista e mi danno un errore.
In alternativa, potrei eseguire la query senza dove istruzione e filtro si basano sul risultato. Tuttavia, in molti altri casi che restituiscono milioni di righe, preferirei i dati dei filtri a livello del server SQL per essere più efficienti.
Non ho trovato alcun campione rilevante sulla documentazione di fsharp.data.sqlclient. Per favore aiuto!
Suppongo che abbia come target SQL Server. Bene, il motivo per cui non sta usando un array o elenco è semplice - SQL Server non ha tali tipi di dati. Ha un tipo di dati appositamente progettato per la memorizzazione di più elementi di dati, la tabella. Non ho dimestichezza con [tag: fsharp.data.sqlclient], ma ti consiglio di provare a scoprire come passare i parametri con valori di tabella. –