使用EF连接Postgresql
环境:
VS2017 Community
Windows 10
Postgresql 9.6
安装Postgresql:
https://www.postgresql.org/download/
1.安装我们需要的Nuget Packages:
install-package npgsql -version 3.1.
Install-Package EntityFramework6.Npgsql -Version 3.1.
2.首先得安装一个vs的扩展工具,这样我们才能在server explorer中像连sql中一样连接到postgresql数据库。

3. 安装好上面的扩展后,我们就在se中建立好我们的连接。

4.我们选择的是Database First的方式,所以之后我们是从DB里面来创建我们的DataModel。

5.建立好Model后,我们试着来创建一个EF的Control.

6.看到以下这个错误。

7.Build一下我们的project之后,接着看到这个错误。

8.在Web 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>
9.应该能看到conttroller创建成功了。

10.但是访问的时候,可能由于我们的表里索引和外键的关系形成死循环,我们需要在Global.asax中加入如下的配置。
HttpConfiguration config = GlobalConfiguration.Configuration; config.Formatters.JsonFormatter
.SerializerSettings
.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
接下来可以使用postman来测试自己的API是不是自己想要返回的东西了。
References:
http://www.npgsql.org/doc/index.html
https://www.nuget.org/packages/EntityFramework6.Npgsql/
https://www.nuget.org/packages/Npgsql/
https://github.com/npgsql/npgsql/issues/1439
https://wiki.postgresql.org/wiki/Using_Microsoft_.NET_with_the_PostgreSQL_Database_Server_via_ODBC
https://stackoverflow.com/questions/19467673/entity-framework-self-referencing-loop-detected
使用EF连接Postgresql的更多相关文章
- EF连接PostgreSql
1.用nuget安装npgsql和EF 注意,Nuget一定要安装Npgsql的2.2.7版本,更高版本nuget在后面安装EF的时候无法自动解析. install-Package Npgsql -V ...
- Entity Freamwork 6连接PostgreSql数据库
原文 Entity Freamwork 6连接PostgreSql数据库 开发环境 VS 2015 Update 1 Postgre Sql 9.4 使用过程 1.使用Nuget在项目中添加对E ...
- C#使用EF连接PGSql数据库
前言 由于项目需要,使用到了PGSql数据库,说实话这是第一次接触并且听说PGSql(PostgreSQL)关系型数据库,之前一直使用的都是SqlServer,一头雾水的各种找资源,终于将PGSql与 ...
- ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库
前段时间在园子里看到了小蝶惊鸿 发布的有关绿色版的Linux.NET——“Jws.Mono”.由于我对.Net程序跑在Linux上非常感兴趣,自己也看了一些有关mono的资料,但是一直没有时间抽出时间 ...
- EF 连接sql2000
正常连接会提示版本低 可以先用ef连接高版本的sql然后新建好EDMX文件后,在右键xml方式打开,把ProviderManifestToken="2008" 改为2000 然后再 ...
- EF 连接MySQL 数据库 保存中文数据后乱码问题
EF 连接MySQL 数据库 保存中文数据后乱码问题 采用Code First 生成的数据库,MySQL数据库中,生成的表的编码格式为***** 发现这个问题后,全部手动改成UTF8(图是另一个表的 ...
- 视频教程--ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库
说好的给园子里的朋友们录制与<ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库> 这篇博客相对应的视频,由于一个月一来没有时 ...
- kali linux 系列教程之metasploit 连接postgresql可能遇见的问题
kali linux 系列教程之metasploit 连接postgresql可能遇见的问题 文/玄魂 目录 kali linux 下metasploit 连接postgresql可能遇见的问题. ...
- EF连接mysql数据库生成实体模型
声明:本人也是第一次用EF连接mysql生成实体模型 经过试验: mysql-connector-net-6.6.6 可以支持VS2012 mysql-connector-net-6.3.9 可以支持 ...
随机推荐
- Lambda表达式和Lambda表达式树
LINQ的基本功能就是创建操作管道,以及这些操作需要的任何状态. 为了富有效率的使用数据库和其他查询引擎,我们需要一种不同的方式表示管道中的各个操作.即把代码当作可在编程中进行检查的数据. Lambd ...
- 基于Activiti的流程应用开发平台JSAAS-WF V5.3
第1章 产品概述及体系架构 1.1.概述 红迅JSAAS-WF工作流平台V5是广州红迅软件有限公司面向合作伙伴以及有IT运维团队中大型企业提供新一代的流程管理产品,它基于流行的JAVA开源技术上构建, ...
- 学习java的感受
学习java有一段时间了,发现现在只是才了解java,还在门槛外边. 有时候真感觉这是不是一种外星语言,各种方法各种类各种借口,总是傻傻分不清. 学过的知识过一个星期就开始模糊,有时半夜睡不着的时候 ...
- 推荐免费的svn空间
可能大部分人跟我一样办公和其他环境的代码同步选择用github,但github免费用户的代码是公开的.如果想做商业项目,用免费的github账号就不合适了,这里推荐的免费svn是个不错的选择. 1.h ...
- ABP官方文档翻译 2.5 设置管理
设置管理 介绍 关于 ISettingStore 定义设置 设置范围 重写设置定义 获取设置值 服务端 客户端 更改设置 关于缓存 介绍 每个应用都需要存储设置,并且在应用的某些地方需要使用这些设置. ...
- NancyFx 2.0的开源框架的使用-Authentication
新建一个空的项目 新建好了空的项目以后,接着通过NuGet安装一下三个包 Nancy Nancy.Hosting.Aspnet Nancy.ViewEnglines.Razor 然后在项目中添加Mod ...
- declare 命令
declare命令用于声明和显示shell变量. declare为shell指令,命令与 typeset一样,可同时指定多个属性.若不加上任何参数,则会显示全部的shell变量与函数(与执行set指令 ...
- Oracle正则表达式之匹配网址
利于正则表达式匹配出网址 --1 表准备create table test_regexp( object varchar2(50)); --2 数据准备 insert into test_regexp ...
- OGNL表达式与EL表达式
一.OGNL表达式 a)什么是OGNL? OGNL是Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言, 通过它简单一致的表达式语法.主要功能: ...
- 密码学之DES/AES算法
本文示例代码详见:https://github.com/52fhy/crypt-demo DES DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算 ...