C#使用EF链接PGSql数据库

前言

因为项目须要,使用到了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的朋友。

相关文章
相关标签/搜索