【发布时间】:2019-06-04 07:16:44
【问题描述】:
我可以使用 FSharp.Data.SqlProgrammabilityProvider 来调用我的存储过程,但我无法弄清楚如何将类型保存到本地架构以便远程构建服务器没有数据库访问构建成功。
对于查询普通表,我可以保存构建服务器使用的本地模式:FSharp.Data.TypeProviders.SqlEntityConnection
但是,SqlEntityConnection 无法访问我的存储过程。
虽然 SqlProgrammabilityProvider 可以调用我的存储过程,但它似乎没有该选项,因此请使用本地架构。
我愿意接受任何适用于此的方法。
let [<Literal>] private CONN = @"Data Source={...}; Initial Catalog={...};Integrated Security=True;Connect Timeout=180"
type myDB = SqlProgrammabilityProvider<CONN>
let cmd = new myDB.dbo.usp_MyStoredProcedure(CONN,commandTimeout=600)
type TVPType = myDB.dbo.``User-Defined Table Types``.MyTableType
type ReturnRecord = myDB.dbo.usp_myStoredProcedure.Record
let createRawRecord (r : ReturnRecord) =
... //Turn into F# record type.
let ids = ["id1"; "id2"] |> Seq.map(fun i -> TVPType(i))
let startDate = ...
let endDate = ...
cmd.AsyncExecute(ids, startDate, endDate)
|> Async.RunSynchronously
|> Seq.map (createRawRecord)
|> Seq.toArray
【问题讨论】:
标签: sql-server f# database-schema type-providers fsharp.data.typeproviders