0

我花了一天的时间尝试将实体框架6 SQL Server CE迁移到PostgreSQL。在Visual Studio 2015中向导中缺少PostgreSQL数据提供者

我已经复制好了数据库,但我似乎无法让数据提供者工作。

首先,我尝试了EF提供程序的旧版本2.2.7,该版本不需要.NET 4.5(因为我们的项目无法使用它),但这并不奏效。我一直在使用NpgsqlConnection代替SqlConnectionStringBuilder,改变在app.config有与Host一个连接字符串(我试过Server但它不喜欢它)和Database值,并确保在EF部分如下:

<entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> 
    <providers> 
     <provider invariantName="Npgsql" type="Npgsql.NpgsqlServices, EntityFramework6.Npgsql" /> 
    </providers> 
</entityFramework> 

我现在已经忽略了这个限制,试图让它工作,所以我有EF提供程序的EF6 v3.1.1版本和最新的.NET提供程序(v3.2.2),这也不起作用。

为了解决这个问题,我一直试图通过安装VS2015扩展来将EDMX从SQL Server CE重新同步到PostgreSQL替换,但它只是给出了一条消息,指出发生了错误,所以我试过这个:https://github.com/npgsql/npgsql/issues/1514 它得到了进一步的,打开窗口,但一旦我输入框中,然后崩溃。由于将该项目升级到.NET 4.5,此提供程序不再出现...

我试过重新安装好几次,并重新启动VS,并且自升级以来,我也尝试安装GAC文件,因为不清楚VS扩展是否需要它们(也是v3.2.2)。

是否有人能够阐明如何最简单地获得所有这些工作,最好不需要.NET 4.5的要求?

感谢

回答

0

安装Npgsql的分机作为tsChan的答案描述是不够的,我也不得不修改我的应用程序的.config(我怀疑是因为它之前,我安装了扩展的创建)以包括的EntityFramework部分数据Npgsql的供应商如下:

<entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> 
    <providers> 
     <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />  
     <provider invariantName="Npgsql" type="Npgsql.NpgsqlServices, EntityFramework6.Npgsql" /> 
    </providers> 
    </entityFramework> 

之后我这样做,供应商出现在向导选项。

相关问题