我试图使用Npgsql类型提供程序从F#调用
postgresql中的存储过程.
目前,我连接到数据库如下:
open System open System.Data open System.Data.Entity open System.Data.Linq open Microsoft.fsharp.data.typeproviders open Microsoft.FSharp.Linq open Npgsql open NpgsqlTypes type internal dbSchema = sqlEntityConnection<ConnectionString="**my connection string**",Provider="Npgsql"> let internal db = dbSchema.GetDataContext()
但是,我只看到db类型上的表,而不是任何存储过程.有没有办法通过类型提供程序以静态类型的方式使用存储过程,而不是只调用原始查询字符串?
解决方法
我知道这个问题是在不久前提出的,但我想我会添加一个对
SqlProvider的引用.这最近支持Postgresql添加到它,它包括对SPROCS的支持.
[<Literal>] let connStr = "User ID=postgres;Password=password;Host=POSTGREsql;Port=9090;Database=hr;" [<Literal>] let resolutionFolder = @"D:\Downloads\Npgsql-2.1.3-net40\" type HR = sqlDataProvider<ConnectionString=connStr,Databasevendor=Common.DatabaseProviderTypes.POSTGREsql,ResolutionPath = resolutionFolder> let ctx = HR.GetDataContext() ctx.Procedures.ADD_JOB_HISTORY(100,DateTime(1993,1,13),DateTime(1998,7,24),"IT_PROG",60) //Support for sprocs that return ref cursors let employees = [ for e in ctx.Functions.GET_EMPLOYEES().ReturnValue do yield e ]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。