C#使用EF連接PGSql數(shù)據(jù)庫的完整步驟
前言
由于項(xiàng)目需要,使用到了PGSql數(shù)據(jù)庫,說實(shí)話這是第一次接觸并且聽說PGSql(PostgreSQL)關(guān)系型數(shù)據(jù)庫,之前一直使用的都是SqlServer,一頭霧水的各種找資源,終于將PGSql與C#的EF連接起來,可以像使用SQLServer一樣使用PGSql了。
PGSql目前有一個(gè)pgAdmin4的管理工具,下載之后就可以直接訪問我們的數(shù)據(jù)庫了。
1.為了演示方便,我們新建一個(gè)控制臺(tái)程序,同時(shí)新建一個(gè)Entity的類庫,后續(xù)添加實(shí)體模型使用。
2.我們點(diǎn)擊工具-->>擴(kuò)展和更新 -->>安裝PGSql所使用的擴(kuò)展工具NPGSql PostgreSql Integration擴(kuò)展工具。
3.安裝完成之后,我們就可以測(cè)試連接我們的pgSql數(shù)據(jù)庫了。在工具-->>連接到數(shù)據(jù)庫我們?cè)跀?shù)據(jù)源一行點(diǎn)擊更改按鈕,就可以看到我們剛剛安裝的PGsql擴(kuò)展工具了。
4.在操作界面輸入本地主機(jī),和對(duì)應(yīng)的數(shù)據(jù)庫名稱,以及用戶名和密碼。點(diǎn)擊測(cè)試連接,可以看到此處已經(jīng)連接成功了。
5.接著我們要在我們項(xiàng)目的Entity類庫中添加以下兩個(gè)引用npgsql和EntityFramework6.Npgsql。
具體的添加方法--右鍵項(xiàng)目--管理NuGet包--輸入名稱下載即可。
在項(xiàng)目中添加相應(yīng)的實(shí)體模型
添加完成之后,我們還要做一步操作就是在app.config中添加如下黑色的配置信息
<entityFramework> <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> <parameters> <parameter value="mssqllocaldb" /> </parameters> </defaultConnectionFactory> <providers> <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> <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>
注意:若在實(shí)體信息添加那一步即將選擇表或視圖時(shí)閃退,請(qǐng)確保你的項(xiàng)目中EntityFramework的版本是否低于或者高于EntityFramework6.Npgsql所要求的版本,否則會(huì)直接閃退掉的。我們只需要更改下對(duì)應(yīng)的版本即可。
最后,我們就可以在項(xiàng)目中使用EF實(shí)體對(duì)象來訪問PGSql了。
由于我也是第一次使用到PGsql數(shù)據(jù)庫,目前也是個(gè)新手小白,遇到不明白的問題也會(huì)通過各種資源去解決,希望可以幫助到同樣第一次或者以后可能接觸到PGSql的朋友。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
C#實(shí)現(xiàn)寫入文本文件內(nèi)容的方法
這篇文章主要介紹了C#實(shí)現(xiàn)寫入文本文件內(nèi)容的方法,涉及C#針對(duì)文本文件的判斷、創(chuàng)建及寫入等相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07C#實(shí)現(xiàn)獲取本地內(nèi)網(wǎng)(局域網(wǎng))和外網(wǎng)(公網(wǎng))IP地址的方法分析
這篇文章主要介紹了C#實(shí)現(xiàn)獲取本地內(nèi)網(wǎng)(局域網(wǎng))和外網(wǎng)(公網(wǎng))IP地址的方法,結(jié)合實(shí)例形式總結(jié)分析了C#獲取IP地址相關(guān)原理、實(shí)現(xiàn)方法與操作注意事項(xiàng),需要的朋友可以參考下2020-03-03WPF自定義實(shí)現(xiàn)雷達(dá)圖控件的示例詳解
雷達(dá)圖用于表示不同內(nèi)容的占比關(guān)系,在項(xiàng)目中有廣泛的應(yīng)用,但是目前未曾有封裝良好的雷達(dá)圖控件,所以本文分享了如何封裝一個(gè)通用的雷達(dá)圖控件,希望對(duì)大家有所幫助2023-08-08C#在WinForm中使用WebKit傳遞js對(duì)象實(shí)現(xiàn)與網(wǎng)頁交互的方法
這篇文章主要介紹了C#在WinForm中使用WebKit傳遞js對(duì)象實(shí)現(xiàn)與網(wǎng)頁交互的方法,涉及針對(duì)WebBroswer控件及WebKit控件的相關(guān)使用技巧,需要的朋友可以參考下2016-03-03C#獲取機(jī)器碼的方法詳解(機(jī)器名,CPU編號(hào),硬盤編號(hào),網(wǎng)卡mac等)
這篇文章主要介紹了C#獲取機(jī)器碼的方法,結(jié)合實(shí)例形式詳細(xì)分析了C#獲取硬件機(jī)器名、CPU編號(hào)、硬盤編號(hào)、網(wǎng)卡mac等信息的相關(guān)實(shí)現(xiàn)方法,需要的朋友可以參考下2016-07-07C#去掉字符串中所有匹配的字符String.Replace方法
在C#中,如果你想要去掉字符串中所有匹配的字符,你可以使用String.Replace方法,本文主要介紹了C#去掉字符串中所有匹配的字符String.Replace方法,具有一定的參考價(jià)值,感興趣的可以了解一下2024-04-04C#實(shí)現(xiàn)EPL?II格式打印與打印測(cè)試
這篇文章介紹了C#實(shí)現(xiàn)EPL?II格式打印與打印測(cè)試的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06C#基礎(chǔ)之?dāng)?shù)組排序、對(duì)象大小比較實(shí)現(xiàn)代碼
C#基礎(chǔ)之?dāng)?shù)組排序、對(duì)象大小比較實(shí)現(xiàn)代碼,學(xué)習(xí)c#的朋友可以參考下。2011-08-08