我将数据库从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>