1

我正在尝试打开 PostgreSQL 连接,但在打开连接时收到 ReflectionTypeLoadException。

请通过提供代码帮助我解决此问题,或让我知道如何删除此异常。

到目前为止我使用的代码如下:

  **/* Connection String 
   <?xml version="1.0" encoding="utf-8" ?>
   <configuration>
      <appSettings>
        <add key="superuserDatabase" value="postgres"/>
      </appSettings>
      <system.data>
      <DbProviderFactories>
        <clear/>
         <add name="Npgsql Data Provider"
           invariant="Npgsql"
           description=".Net Framework Data Provider for Postgresql Server"
            type="Npgsql.NpgsqlFactory, Npgsql" />
      </DbProviderFactories>
     </system.data>
     <connectionStrings>
       <add name="Simple.Data.Properties.Settings.DefaultConnectionString"
          connectionString="host=localhost;port=5432;database=SimpleData;user                                                                     id=postgres;password=P@ssw0rdsa;pooling=false"
           providerName="Npgsql" />
    <add name="Test"
          connectionString="host=localhost;port=5432;database=SimpleData;user    id=postgres;password=P@ssw0rdsa;pooling=false"
          providerName="Npgsql" />
     </connectionStrings>
   </configuration>**
   */

尝试在 POSTGRESQL var namedDb = Database.OpenNamedConnection("Test").Demo.All(); 中打开连接时出现以下异常

反射类型加载异常

4

1 回答 1

4

此 ReflectionLoadTypeException 最常见的原因是您使用的 DLL 不是最新的,因此依赖链失败。使用 nuget 使用最新的 DLL 更新您的项目。PostgreSql 提供程序的 v0.16.2.2 需要

  • Simple.Data.Core (≥ 0.12.2.2)
  • Simple.Data.Ado (≥ 0.12.2.2)
  • Npgsql (≥ 2.0.11)

(通过 Mark Rendle)尝试首先显式安装 Simple.Data.Ado 的 0.16.2.2,然后安装 Postgres 包。

于 2013-10-16T10:59:04.150 回答