因爲項目須要,使用到了PGSql數據庫,說實話這是第一次接觸而且據說PGSql(PostgreSQL)關係型數據庫,以前一直使用的都是SqlServer,一頭霧水的各類找資源,終於將PGSql與C#的EF鏈接起來,能夠像使用SQLServer同樣使用PGSql了。sql
PGSql目前有一個pgAdmin4的管理工具,下載以後就能夠直接訪問咱們的數據庫了。PGAdmin4下載數據庫
1.爲了演示方便,咱們新建一個控制檯程序,同時新建一個Entity的類庫,後續添加實體模型使用。windows
2.咱們點擊工具-->>擴展和更新 -->> 安裝PGSql所使用的擴展工具 NPGSql PostgreSql Integration擴展工具。app
3.安裝完成以後,咱們就能夠測試鏈接咱們的pgSql數據庫了。在工具-->>鏈接到數據庫 咱們在數據源 一行 點擊更改按鈕,就能夠看到咱們剛剛安裝的PGsql擴展工具了。框架
4.在操做界面 輸入本地主機,和對應的數據庫名稱,以及 用戶名和密碼。點擊測試鏈接,能夠看到此處已經鏈接成功了。ide
5.接着咱們要在咱們項目的Entity類庫中添加如下兩個引用 npgsql 和EntityFramework6.Npgsql。工具
具體的添加方法-- 右鍵項目--管理NuGet包-- 輸入名稱 下載便可。測試
在項目中添加相應的實體模型 spa
添加完成以後,咱們還要作一步操做就是在app.config 中添加以下黑色的配置信息code
1 <entityFramework> 2 3 <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> 4 5 <parameters> 6 7 <parameter value="mssqllocaldb" /> 8 9 </parameters> 10 11 </defaultConnectionFactory> 12 13 <providers> 14 15 <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> 16 17 <provider invariantName="Npgsql" type="Npgsql.NpgsqlServices, EntityFramework6.Npgsql" /> 18 19 </providers> 20 21 </entityFramework> 22 23 <system.data> 24 25 <DbProviderFactories> 26 27 <add name="Npgsql Data Provider" invariant="Npgsql" description="Data Provider for PostgreSQL" type="Npgsql.NpgsqlFactory, Npgsql" /> 28 29 </DbProviderFactories> 30 31 </system.data>
注意:若在實體信息添加那一步 即將選擇表或視圖時閃退,請確保你的項目中EntityFramework的版本是否低於或者高於EntityFramework6.Npgsql所要求的版本,不然會直接閃退掉的。咱們只須要更改下對應的版本便可。
最後,咱們就能夠在項目中使用EF實體對象來訪問PGSql了。
因爲我也是第一次使用到PGsql數據庫,目前也是個新手小白,遇到不明白的問題也會經過各類資源去解決,但願能夠幫助到一樣第一次或者之後可能接觸到PGSql的朋友。