Sql server 如何为F#SqlProgrammabilityProvider调用存储过程使用本地模式
我能够使用FSharp.Data.SqlProgrammabilityProvider调用我的存储过程,但我无法想出如何将类型保存到本地架构,以便在没有DB访问权限的情况下成功构建远程构建服务器 为了查询普通表,我可以保存生成服务器使用的本地模式:FSharp.Data.TypeProviders.SqlEntityConnection 但是,SqlEntityConnection无法访问我的存储过程 虽然SqlProgrammabilityProvider可以调用我的存储过程,但它似乎没有使用本地模式的选项 我对任何在这里有效的方法都持开放态度Sql server 如何为F#SqlProgrammabilityProvider调用存储过程使用本地模式,sql-server,f#,database-schema,type-providers,fsharp.data.typeproviders,Sql Server,F#,Database Schema,Type Providers,Fsharp.data.typeproviders,我能够使用FSharp.Data.SqlProgrammabilityProvider调用我的存储过程,但我无法想出如何将类型保存到本地架构,以便在没有DB访问权限的情况下成功构建远程构建服务器 为了查询普通表,我可以保存生成服务器使用的本地模式: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
let[]private CONN=@“数据源={…};初始目录={…};集成安全性=True;连接超时=180”
类型myDB=SqlProgrammabilityProvider
让cmd=new myDB.dbo.usp\u mystoredprocesdure(CONN,commandTimeout=600)
类型TVPType=myDB.dbo.`User Defined Table Types`.MyTableType
键入ReturnRecord=myDB.dbo.usp_myStoredProcedure.Record
让createRawRecord(r:ReturnRecord)=
... //变成F#记录类型。
让ids=[“id1”;“id2”]|>Seq.map(乐趣i->TVPType(i))
让startDate=。。。
让endDate=。。。
cmd.AsyncExecute(id、startDate、endDate)
|>异步运行
|>Seq.map(createRawRecord)
|>序号:toArray
我对任何在这里有效的方法都持开放态度
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
SqlProgrammabilityProvider
中的CONN
是类型提供程序用来生成类型的设计/编译时连接<在myDB.dbo.usp\u mystoredprocesdure(CONN,commandTimeout=600)中的code>CONN
用于在运行时访问数据库。这些将是
我们使用的方法是: