Tôi đang cố gắng gọi một thủ tục được lưu trữ trong postgresql từ F # bằng cách sử dụng nhà cung cấp kiểu Npgsql.Gọi thủ tục lưu sẵn trong Postgresql thông qua F # và Npgsql
Hiện nay, tôi đang kết nối với cơ sở dữ liệu như sau:
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()
Tuy nhiên, tôi chỉ nhìn thấy các bảng vào loại db
, không phải bất kỳ thủ tục lưu trữ. Có cách nào để sử dụng các thủ tục được lưu trữ theo cách được gõ tĩnh thông qua nhà cung cấp kiểu, thay vì chỉ gọi chuỗi truy vấn thô?
Tôi không biết F # vâng đủ để đưa ra câu trả lời thực sự về điều này, nhưng tôi nghi ngờ vấn đề là Pg không thực sự có các thủ tục được lưu trữ. Nó có các hàm set-return thường được sử dụng như thể chúng được lưu trữ thủ tục, nhưng không có một proc thực sự được lưu trữ và hàm 'CALL'. –
@CraigRinger Tôi không thấy lý do tại sao nhà cung cấp loại không thể hỗ trợ gọi những người đó theo cách được đánh máy mạnh mẽ. – svick
@svick Về lý thuyết bạn có thể, nhưng vì chúng không phải là các thủ tục được lưu trữ thực sự, chúng có thể không được nhận dạng và hiển thị thông qua nhà cung cấp loại đã nói. –