找不到实体类型为EntityFramework6和postgres的错误

时间:2018-08-14 06:14:47

标签: .net postgresql entity-framework-6

我将数据库从Microsoft SQL Server迁移到postgres,在pgadmin中一切似乎都很好,任何查询都没有问题,但是当我尝试将其与EntityFramework6连接时,出现以下错误:

System.InvalidOperationException: 'The store type 'money' could not be found in the Npgsql provider manifest'

此外,对于datetime2类型也遇到相同的错误。 我试图调用((NpgsqlConnection)Database.Connection).ReloadTypes();正如我在几个地方发现的那样,它可以提供帮助,但对我而言却没有帮助。

我也尝试重新创建整个模型,但是它仍然失败,并出现相同的错误(转换时我可能做错了,将再次尝试确保它不起作用)。

我安装了EntityFramework6,npgsql4.0.2和ntityFramework6.Npgsql 3.2.0。

这是我的app.config部分:

<connectionStrings>
    <clear />
    <add name="PgConnection" connectionString="server=localhost;user id=postgres;password=postgres;database=dbName" providerName="Npgsql" />
  </connectionStrings>
  <entityFramework>
    <defaultConnectionFactory type="Npgsql.NpgsqlConnectionFactory, EntityFramework6.Npgsql" />
    <providers>
      <provider invariantName="Npgsql" type="Npgsql.NpgsqlServices, EntityFramework6.Npgsql" />
    </providers>
  </entityFramework>
  <system.data>
    <DbProviderFactories>
      <add name="Npgsql Data Provider" invariant="Npgsql" description="Data Provider for PostgreSQL" type="Npgsql.NpgsqlFactory, Npgsql" />
    </DbProviderFactories>
  </system.data>

0 个答案:

没有答案