前言

由于项目需要,使用到了PGSql数据库,说实话这是第一次接触并且听说PGSql(PostgreSQL)关系型数据库,之前一直使用的都是SqlServer,一头雾水的各种找资源,终于将PGSql与C#的EF连接起来,可以像使用SQLServer一样使用PGSql了。

PGSql目前有一个pgAdmin4的管理工具,下载之后就可以直接访问我们的数据库了。PGAdmin4下载

1.为了演示方便,我们新建一个控制台程序,同时新建一个Entity的类库,后续添加实体模型使用。

 

2.我们点击工具-->>扩展和更新 -->> 安装PGSql所使用的扩展工具 NPGSql PostgreSql Integration扩展工具。

 
 

3.安装完成之后,我们就可以测试连接我们的pgSql数据库了。在工具-->>连接到数据库 我们在数据源 一行 点击更改按钮,就可以看到我们刚刚安装的PGsql扩展工具了。

 

4.在操作界面 输入本地主机,和对应的数据库名称,以及 用户名和密码。点击测试连接,可以看到此处已经连接成功了。

 
 

5.接着我们要在我们项目的Entity类库中添加以下两个引用 npgsql 和EntityFramework6.Npgsql。

具体的添加方法-- 右键项目--管理NuGet包-- 输入名称 下载即可。

在项目中添加相应的实体模型

 

添加完成之后,我们还要做一步操作就是在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>

注意:若在实体信息添加那一步 即将选择表或视图时闪退,请确保你的项目中EntityFramework的版本是否低于或者高于EntityFramework6.Npgsql所要求的版本,否则会直接闪退掉的。我们只需要更改下对应的版本即可。

 

最后,我们就可以在项目中使用EF实体对象来访问PGSql了。

由于我也是第一次使用到PGsql数据库,目前也是个新手小白,遇到不明白的问题也会通过各种资源去解决,希望可以帮助到同样第一次或者以后可能接触到PGSql的朋友。

C#使用EF连接PGSql数据库的更多相关文章

  1. EF 连接MySQL 数据库  保存中文数据后乱码问题

    EF 连接MySQL 数据库  保存中文数据后乱码问题 采用Code First 生成的数据库,MySQL数据库中,生成的表的编码格式为***** 发现这个问题后,全部手动改成UTF8(图是另一个表的 ...

  2. EF连接mysql数据库生成实体模型

    声明:本人也是第一次用EF连接mysql生成实体模型 经过试验: mysql-connector-net-6.6.6 可以支持VS2012 mysql-connector-net-6.3.9 可以支持 ...

  3. EF连接MySql数据库

    Windows要想EF连接MySql,首先要安装两个应用程序 mysql-connector-net-6.8.8.msimysql-for-visualstudio-1.2.7.msi 项目还需要两个 ...

  4. .net core 2.1 Ef 连接Mysql数据库 DB first

    本文介绍.net core2.1版本下 Mysql数据库采用DB first方式使用Ef 点击查看更简单的方法 1. 新建基于.net core2.1的项目(略) 2. 从nuget中引用Micros ...

  5. 使用EF连接现有数据库

    新建个项目---在项目内添加新建项-- 选择ADo.NET实体数据模型(我的软件vs2012 上面之所以有两个ADo.NET实体数据模型 是因为上面一个EF4.0 下面一个EF5.0 ) 在实际操作中 ...

  6. 刚刚完成了在vs2013中通过 ef连接mysql数据库的工作。感觉没有想象中的简单。试了n次终于成功。故记录成功的方法,希望可以帮到大家

    分两种情况,如果你是用entity framework 5.0的时候 mysql-connector-net的版本不是很重要. MySQL For VisualStudio的版本也不重要 (这个不装就 ...

  7. PDO连接mysql和pgsql数据库

    PDO连接mysql数据库 <?php $dsn="mysql:host=localhsot;dbname=lamp87"; $user="root"; ...

  8. 使用EF CodeFirst连接MySql数据库

    如何使用EF CodeFirst连接MySql数据库? 我们这篇文章介绍怎么使用EF连接MySql 作者的环境 VS2017.Win10.MySql5.x 前言 一般在EF中,默认是使用SqlServ ...

  9. Asp.net core 3.1+EF Core2.2.6+Oracle.EntityFrameworkCore2.1.19连接Oracle数据库

    Asp.net Core 3.1+EF Core2.2.6+Oracle.EntityFrameworkCore2.1.19连接Oracle数据库 1.前言 本次主要采用Asp.net core3.1 ...

随机推荐

  1. [转]Asp.Net url中文乱码

    一般有3种方法: 1.设置web.config文件 2.传递中文之前,将要传递的中文参数进行编码,在接收时再进行解码.  传递 string Name = "中文参数"; Resp ...

  2. 【题解】洛谷P2661 [NOIP2015TG] 信息传递

    题目来源:洛谷P2661 思路 运用并查集查找图中最小环的长度 如果A传递信息给B 就从A加一条边指向B 并更新A的父节点 从A到父节点的路径长度为B到父节点的路径长度+1 如果有两个点的祖先相同而且 ...

  3. C语言中内存分配

     C语言中内存分配   在任何程序设计环境及语言中,内存管理都十分重要.在目前的计算机系统或嵌入式系统中,内存资源仍然是有限的.因此在程序设计中,有效地管理内存资源是程序员首先考虑的问题. 第1节主要 ...

  4. 史上最简单的SpringCloud教程 | 第十篇: 高可用的服务注册中心(Finchley版本)

    转载请标明出处: 原文首发于 https://www.fangzhipeng.com/springcloud/2018/08/30/sc-f10-eureka/ 本文出自方志朋的博客 文章 史上最简单 ...

  5. java web项目用cookie记住用户名、密码

    1.jsp页面: <% String flag = (String)session.getAttribute("flag")==null?"":(Stri ...

  6. Swift_100个Swift必备Tips 王巍 PDF

    Swift_100个Swift必备Tips 王巍 PDF GitHub下载地址

  7. Swift_函数

    Swift_函数 点击查看源码 定义和调用函数 //定义和调用函数 func testDefiningAndCallingFunctions() { func sayHello(_ personNam ...

  8. 个人免签即时到账收款接口 bufpay.com 支持多账号收款

    有很多 bufpay 的用户反馈,单个手机收款有些时候不太方便,切换手机太麻烦:或者是营业额比较多,希望分摊到多个账号上面. 基于以上的问题,bufpay 开发了多手机收款的功能:每个收款的手机安装 ...

  9. Linux中文件I/O函数

    一.lseek函数 每个打开文件都有一个与其相关联的“当前文件偏移量”.它通常是一个非负整数,用以度量从文件开始处 计算的字节数.通常,读.写操作都从当前文件偏移量处开始,并使偏移量增加所读写的字节数 ...

  10. 如何优雅的使用C语言绘制一只小猪佩奇

    今天我们来用C语言画一只小猪佩奇---社会.社会....在画小猪佩奇之前,我们先使用带符号的距离长 (signed distance field,SDF) 来画一个圆形. 使用这个方法表示形状,但是这 ...