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