Я пытаюсь вызвать хранимую процедуру в postgresql из F # с помощью поставщика типа Npgsql.Вызов хранимой процедуры в Postgresql через F # и Npgsql
В настоящее время я подключен к базе данных следующим образом:
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
типа, а не какой-либо из хранимых процедур. Есть ли способ использовать хранимые процедуры статически типизированным способом через поставщика типов, а не просто вызвать строку необработанного запроса?
Я не знаю, F # и т. Д. Достаточно, чтобы дать реальный ответ на это, но я подозреваю, что проблема в том, что Pg на самом деле не хранит процедуры. Он имеет функции set-return, которые часто используются так, как если бы они были хранимыми процедурами, но нет реальной хранимой процедуры proc и 'CALL'. –
@CraigRinger Я не понимаю, почему провайдеру типа не удалось называть их строго типизированным способом. – svick
@svick В теории вы можете, но поскольку они не являются истинными хранимыми процедурами, они не могут быть распознаны и выставлены через поставщика указанного типа. –