Skip to content

Instantly share code, notes, and snippets.

@nakamura-to
Created December 9, 2012 11:57
Show Gist options
  • Save nakamura-to/4244539 to your computer and use it in GitHub Desktop.
Save nakamura-to/4244539 to your computer and use it in GitHub Desktop.
Close all OracleParameters in Soma
member this.SetupCommand (ps:PreparedStatement) (command:DbCommand) =
command.CommandText <- ps.Text
let dbParams =
ps.Parameters
|> List.map (fun param ->
let dbParam = command.CreateParameter()
dialect.SetupDbParameter(param, dbParam)
dbParam )
|> List.toArray
command.Parameters.AddRange(dbParams)
let disposableParams =
dbParams
|> Seq.map (fun dbParam -> dbParam :> obj)
|> Seq.filter (fun obj -> obj :? IDisposable)
|> Seq.cast<IDisposable>
|> Seq.toArray
{ new IDisposable with
member this.Dispose() =
disposableParams
|> Array.iter (fun d -> d.Dispose() )
GC.SuppressFinalize(this) }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment