web-dev-qa-db-ja.com

Entity Framework 6とNpgsql

ASP.NET MVC 4プロジェクトでPostgreSQLとEntity Framework 6を​​使用したい。 Entity Framework 6.0.2 + Npgsql 2.0.14.3を入手しましたが、エラーが発生します。どうすれば修正できますか?

エラー:

タイプ 'System.InvalidOperationException'の例外がmscorlib.dllで発生しましたが、ユーザーコードでは処理されませんでした

追加情報:Entity Frameworkプロバイダータイプ 'Npgsql.NpgsqlServices、Npgsql、Version = 2.0.14.3、Culture = neutral、PublicKeyToken = 5d8b90d52f46fda7'の 'Instance'メンバーは、 'System.Data.Entityから継承するオブジェクトを返しませんでした。 Core.Common.DbProviderServices '。 Entity Frameworkプロバイダーはこのクラスから継承する必要があり、 'Instance'メンバーはプロバイダーのシングルトンインスタンスを返す必要があります。これは、プロバイダーがEntity Framework 6以降をサポートしていないことが原因である可能性があります。詳細については、 http://go.Microsoft.com/fwlink/?LinkId=260882 を参照してください。

Web.config

<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="DatabaseContext" connectionString="Server=localhost;port=5432;Database=main;User Id=postgres;Password=password;" providerName="Npgsql" />
</connectionStrings>
<entityFramework>
  <providers>
    <provider invariantName="Npgsql" type="Npgsql.NpgsqlServices, Npgsql" />
  </providers>
</entityFramework>
13
user007

私はこのようにNpgsqlをインストールする必要がありました:

Install-Package Npgsql.EF6 -Pre

動作する別のバージョンをインストールします。

更新:新しいベータ版については、

install-package Npgsql.EntityFramework -pre

22
user007