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> 

之後我這樣做,供應商出現在嚮導選項。

相關問題