使用Npgsql實現Linq To PostgreSQL

首先,掃盲一下背景知識: 

LINQ 和 ADO.NEThtml

What is Entity Framework?git

 

而後,LINQ to SQL是隻支持微軟親兒子SQL Server的。若是咱們要連上PostgreSQL,須要第三方插件。github

 

第一個歸入視線的是Devart LinqConnect 

惋惜他們家的產品裏輕量版不支持LINQ,專業版是收費的,sql

原本還想薅一薅專業版試用期一個月的羊毛,結果官網直接訪問不了了,果斷棄坑。數據庫

 

而後硬着頭皮去google了一下,緩存

發現Npgsql(我司老朋友了)是支持EF的

那就試一把:架構

步驟一:VS擴展插件搜索並安裝Npgsql PostgreSQL Interaction最新版。框架

步驟二:NuGet裏搜索並安裝EntityFramework6.Npgsql,Npgsql最新版。分佈式

 

一試沒關係,又是各類問題,好比安裝完成後,仍是連庫驅動列表裏找不到PostgreSQL Database的數據源...工具

 

咋整,再去網上翻翻看,結果在插件Npgsql PostgreSQL Interaction官方下載頁面上,

最新提問就在說Ver4.1.X.X版本的插件有問題。。。

太陽底下沒有新鮮事啊。。。(時間戳:2020/08/07)

 

沒辦法,又去查,直接翻到github上看源碼,不,源碼我看不懂,看看你們的抱怨吧,

好比這個:Cannot use EF6 Entity Data Model wizard #1775 是跟我一樣的問題。

 

看他樣子好像用低版本就解決了。那拿個低版本的試試?

繼續翻github,找到3.2.7版本,下載並安裝這兩個貨:

Npgsql-3.2.7.msi  (連庫基礎)
Npgsql.vsix (VS擴展插件即Npgsql PostgreSQL Interaction這個東東)

重點一:這裏能夠回到NuGet裏安裝,再也不選擇最新版,選擇3.2.7版本就好。

而後擴展插件裏,再次安裝EntityFramework6.Npgsql (要關閉自動升級),相應版本爲3.1.1。
重點二:以上3個安裝的工具/插件,有版本配套要求,詳見Cannot use EF6 Entity Data Model wizard #1775

 

--------------------------------------------------------------我是昏割線--------------------------------------------------------------------------

終於迎來了見證奇蹟的時候

連庫試一把看看,能夠啦。

    

 

新建ADO.NET Entity Data Model也能出來啦:

     

 

LINQ一把看看:

   

 

 完美完美!

 
--------------------------------------------------------------我是昏割線--------------------------------------------------------------------------

 

原本故事到這裏就結束了,萬萬沒想到,重點學(co)習(py)的一篇博文裏。。。。 

汗顏,我遇到的問題,這裏都說到了,我還處處翻,可翻了我老半天。。。。

 EntityFramework6(EF6)鏈接Postgresql數據庫問題總結

 

彩蛋

這裏還有一些開源的ORM框架,有空的時候去扒一扒看看。

 

Dos.ORM(原Hxj.Data)

於2009年發佈、2015年正式開源,該組件已在數百個成熟項目中應用,是目前國內用戶量最大、最活躍、最完善的國產ORM。

初期開發過程參考了NBear與MySoft,吸收了他們的一些精華,加入新思想,同時參考EF的Lambda語法進行大量擴展。

 

Scree - 基於ORM的框架思想與體系

這是一套使用C#開發的ORM框架,對象基於版本控制,集成事務、緩存、同步與鎖。做者力圖在簡單、實用、可擴展和分佈式中尋求合適的平衡,

它並不單單是ORM,而是一整套基礎架構的思想,在簡潔直白中傳達架構思惟的藝術。

 

這麼長,看完點個贊。

相關文章
相關標籤/搜索