Ben*_*ner 5 postgresql f# npgsql type-providers
我试图使用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()
Run Code Online (Sandbox Code Playgroud)
但是,我只看到db类型上的表,而不是任何存储过程.有没有办法通过类型提供程序以静态类型的方式使用存储过程,而不是只调用原始查询字符串?
从您所看到的来看,npgsql、f# 和 npgsqltypes 之间似乎不支持此功能。你在这里得到一个好的答案的机会非常低,因为这需要有人对这种语言、它的架构以及每个难题的具体依赖有深刻的理解。可能还需要调试才能查看出了什么问题。
之前的建议是:
由于 PostgreSQL 本身并没有真正的存储过程,F# 可能无法识别它们,并且
npgsqltypes 可能缺少映射上的一些重要方面。
我预计 npgsql 不会是我开始研究这个问题的地方,因为理论上,类型提供程序应该能够自己进行查找。
因此,我建议您访问相关电子邮件列表并询问此问题(假设这是您的类型提供商的问题)。任何有足够知识来排除故障的人都可能会出现在这些电子邮件列表中。