C# EF6框架连接postgresql数据库

准备工作:postgresql 9.2版本;vs2017专业版。
安装步骤:
1.进入vs2017,新建一个项目,在此选择了窗体应用程序,.net framework环境选择4.5版本。在这里插入图片描述
2.下载Npgsql PostgreSQL Interaction插件并安装,在此选择安装4.0.9版本,推荐使用github(地址:https://github.com/npgsql/npgsql/releases)手动选择版本下载。在这里插入图片描述
这个地方踩过两个大坑,导致连接数据库时一直报错“Npgsql.TypeMapping.GlobalTypeMapper的类型初始值设定项引发异常”’:
在这里插入图片描述
(1)当时是在vs的“拓展和更新 -> 联机”中下载的Npgsql PostgreSQL Interaction插件,默认是下载最新版4.1.1,但这个版本现在有bug,在连接数据库时会报错,经过苦苦搜索英文资料才爬出这个坑。
(2)在自己计算机中,控制面板 -> 卸载程序,找一下有没有安装了叫做“Npgsql”的程序,若是有,请卸载,否则会报错。
安装之后,在菜单栏工具下的扩展与更新下即可查看。
在这里插入图片描述
3.现在可以连接pg数据库了,打开菜单栏工具下的“连接到数据库”,选择postgresql(若是不安装上面的插件,则在此不显示postgresql),输入所要连接的数据库名和信息,完成数据库连接:
在这里插入图片描述
4.下面开始为创建实体模型做准备,均使用Nuget安装:
Npgsql程序包4.0.9版本;
EntityFramework6.Npgsql 3.2.1.1版本或者3.1.1版本(后面还得需要升级 EntityFramework版本)。
安装步骤如图,当然也可采用Nuget的控制台界面进行命令行安装,本文采用界面化安装。
在这里插入图片描述
可以查看已安装程序包的版本和依赖项。
在这里插入图片描述
在这里插入图片描述
将以上两个程序包安装完成之后,在项目的引用中,即可看到有一下引用。
在这里插入图片描述
鉴于本次安装的经验, 前面的EntityFramework6.Npgsql 版本是3.1.1的话,后续创建实体模型时会提示“尝试安装EntityFramework6的6.2.0版本”,所在在此可以升级以下EntityFramework6的版本。
在这里插入图片描述
5.接下来开始创建实体数据模型,选择项目右击添加 -> 新建项,然后选择数据栏里的ADO.NET实体数据模型:
在这里插入图片描述
选择来自数据库的EF设计器,进行如下操作:
在这里插入图片描述
在这里插入图片描述
点击确定
在这里插入图片描述
生成模型:
在这里插入图片描述
6.需要在App.config文件里面添加如下代码:
在这里插入图片描述
如下代码:

<system.data>  
   <DbProviderFactories>
       <remove invariant="Npgsql" />
       <add name="Npgsql Data Provider" invariant="Npgsql" description=".Net Data Provider for PostgreSQL" type="Npgsql.NpgsqlFactory, Npgsql" support="FF" />
   </DbProviderFactories>    
</system.data>

生成实体模型后,也会在app.config里面生成以下连接信息
在这里插入图片描述
至此,C# EF6框架连接postgresql数据库完成。

本文参考链接并予以感谢:
https://blog.csdn.net/danger_z/article/details/80466350
https://www.bbsmax.com/A/q4zVRbgGzK/

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值