2

Linux プラットフォームで EF を Postgresql と連携させようとしています。データベースに接続しようとすると、次のエラーが表示されます。私の app.config ファイル:

<?xml version="1.0" encoding="utf-8"?>
  <configuration>
    <configSections>
      <section name="entityFramework"
        type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework" />
    </configSections>
    <system.data>
      <DbProviderFactories>
        <remove invariant="Npgsql"></remove>
        <add name="Npgsql Data Provider" 
          invariant="Npgsql" 
          description=".Net Framework Data Provider for Postgresql Server" 
          type="Npgsql.NpgsqlFactory, Npgsql, Version=4.0.0.0, Culture=neutral" />
      </DbProviderFactories>
    </system.data>
    <connectionStrings>
      <add name="MinDatabase" connectionString="Server=localhost;Port=5432;Database=postgres;User Id=postgres;Password=;CommandTimeout=20;" 
        providerName="Npgsql Data Provider" />
    </connectionStrings>
  </configuration>

Mono にデータ プロバイダーをロードさせるにはどうすればよいですか?

4

2 に答える 2

3

エラーメッセージには不変名が含まれているため、不変名「Npgsql Data Provider」を持つものを探し、invariantName を Npgsql に具体的に設定します。したがって、次のように、構成全体で同じ名前を使用するように変更してみてください。

<system.data>
  <DbProviderFactories>
    <remove invariant="Npgsql"></remove>
    <add name="Npgsql" 
      invariant="Npgsql" 
      description=".Net Framework Data Provider for Postgresql Server" 
      type="Npgsql.NpgsqlFactory, Npgsql, Version=4.0.0.0, Culture=neutral" />
  </DbProviderFactories>
</system.data>
<connectionStrings>
  <add name="MinDatabase" connectionString="Server=localhost;Port=5432;Database=postgres;User Id=postgres;Password=;CommandTimeout=20;" 
    providerName="Npgsql" />
</connectionStrings>

それがうまくいくことを願っています

于 2012-12-19T08:29:48.927 に答える