私は .Net と F# に非常に慣れていないので、覚えておいてください....
Npgsql EF プロバイダーを使用して、F# で PostgreSQL に接続しようとしています。同じことについていくつかの投稿がありましたが、実際に解決策を提供するものはありません. どうやらこの作業を行うことができたと私が見た唯一の人は、この投稿の人です: Calling a stored procedure in Postgresql through F# and Npgsql
残念ながら、彼は構成の詳細を提供しました。(これを読んでいる場合は、回答を投稿してください!ありがとう!)
これが私のセットアップです:
私の App.config には次のものがあります。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="4.0.0.0" newVersion="4.3.0.0" />
<bindingRedirect oldVersion="2.3.5.0" newVersion="4.3.0.0" />
<bindingRedirect oldVersion="2.0.0.0" newVersion="4.3.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<system.data>
<DbProviderFactories>
<add name="Npgsql Data Provider"
invariant="Npgsql"
description="Data Provider for PostgreSQL"
type="Npgsql.NpgsqlFactory, Npgsql" />
</DbProviderFactories>
</system.data>
<connectionStrings>
<add name="MyDBContext"
connectionString="Server=******;Database=mydb;User Id=uid;Password=passwd;"
providerName="Npgsql" />
</connectionStrings>
</configuration>
コードは次のようになります。
open System.Data.Linq
open System.Data.Entity
open Microsoft.FSharp.Data.TypeProviders
open Npgsql
open NpgsqlTypes
type internal entityConnection = SqlEntityConnection<ConnectionStringName="MyDBContext">
let context = entityConnection.getDataContext();
これは機能しないか、コンパイルされません。
どんな助けでも大歓迎です。これを行う別の方法 (Npgsql を使用する以外) がある場合、私はそれも受け入れます。
ありがとう!