EF+postgresql中的一些问题

需要基于MVC的WebAPI搭建一个服务接口,数据存储在postgresql数据库,在使用的过程中遇到了很多问题。做一下记录:

(1) System.IO.FileLoadException: 未能加载文件或程序集“Npgsql, Version=3.1.2.0, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)

项目采用codefirst的方式,但是在搭建项目的时候,总是遇到这个错。

我的步骤如下

  1、安装entityframework6

  打开 Package Manage Console,输入命令 Install-Package EntityFramework;

  2、安装npgsql 的entityframework支持

    命令  Install-Package EntityFramework6.Npgsql

  3、安装 npgsql

  命令   Install-Package Npgsql

  配置文件代码示例 

  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
    <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>
      <remove invariant="Npgsql"></remove>
      <add name="Npgsql Data Provider" invariant="Npgsql" description=".Net Framework Data Provider for Postgresql Server" type="Npgsql.NpgsqlFactory, Npgsql" />
    </DbProviderFactories>
  </system.data>
  <connectionStrings>
    <add name="TestDbContext" connectionString="Server=localhost;Database=test; User Id=dba;Password=12345678;" providerName="Npgsql" />
  </connectionStrings>

  但不知道为什么,还是会报错!

  后来,我下是不是包的安装顺序搞错了!!就把上面的2和3换了一下!成功!!!

  哎,也是醉了!这个小问题,都纠缠了这么久!写代码需要更加小心啊!

时间: 2024-10-08 15:27:47

EF+postgresql中的一些问题的相关文章

PostgreSQL 中定义自己需要的数据类型

PostgreSQL解决某系数据库中的tinyint数据类型问题,创建自己需要的数据类型如下: CREATE DOMAIN tinyint AS smallint CONSTRAINT tinyint_check CHECK (VALUE >= 0 AND VALUE <= 255); ALTER DOMAIN tinyint OWNER TO postgres; COMMENT ON DOMAIN tinyint IS 'tinyint type between 0 and 255'; po

postgresql中to_char和round的混合使用

在postgresql中大家都用过round吧,当遇到小数的时候该如何显示呢?看例子 SELECT to_char(round(127 * 0.1 / 67543,6)*10000,'90.99') 1.88 SELECT to_char(round(127 * 0.1 / 67543,6)*10000,'90.00') 1.88 SELECT to_char(round(150 * 0.1 / 50000,6)*1000,'90.09') 0.30 SELECT to_char(round(1

golang自己定义数据类型查询与插入postgresql中point数据

golang自己定义数据类型查询与插入postgresql中point数据 详细代码例如以下: package main import ( "bytes" "database/sql" "database/sql/driver" "fmt" _ "github.com/lib/pq" "strconv" "strings" ) // 自己定义支持类型 type Poi

在Postgresql中添加新角色(Role)

Postgresql安装完成之后,默认会创建名为postgres的用户.角色(Role)和数据库(Database).而使用你自己原有的用户运行psql时会提示错误. [email protected]:~$ psql psql: FATAL: role "bob" does not exist 如果想要使用自己的用户"bob"来运行psql,就需要在Postgresql中添加名为"bob"的角色(Role). [email protected]

PostgreSQL中initdb做了什么

在使用数据库前,是启动数据库,启动数据库前是initdb(初始化数据库):一起来看一下initdb做了什么吧. 初始化数据库的操作为: ./initdb -D /usr/local/pgsql/data initdb把用户指定的选项转换成对应的参数,通过外部程序调用的方式执行postgres程序.postgres程序在这种方式下将进入bootstrap模式创建数据集簇,并读取后端接口postgres.bki文件来创建模板数据库. /*-------------------------------

如何将扩展名为.backup的文件导入postgresql中 求步骤 新手 谢谢.

1.到www.postgresql.org下载pgadmin这个工具,安装好2.在菜单-文件-新增服务器 名称:TEST-PGSQL(名称自己编) 主机:填上你postgresql数据库的服务器ip地址在本机可以填上:127.0.0.1 埠号:就是端口postgreql默认是 (5432), 用户名:就是创建数据库时指定的超级管理员名称,密码:就是创建数据库时指定的密码.输完后点确定,就会连接到你的数据库.3.找到你要导入数据的数据库名称,点右键,点”恢复“或者”备份回存“(pgadmin不同的

PostgreSQL中几个对象概念及其关系

本文参考:http://blog.csdn.net/kanon_lgt/article/details/5931522 http://blog.csdn.net/kanon_lgt/article/details/6220928 DB实例与schema: 模式是数据库实例的逻辑分割. 数据库是被模式(schema)来切分的,一个数据库至少有一个模式,所有数据库内部的对象(object)是被创建于模式的.用户登录到系统,连接到一个数据库后,是通过该数据库的search_path来寻找schema的

golang自定义数据类型查询与插入postgresql中point数据

golang自定义数据类型查询与插入postgresql中point数据 具体代码如下: package main import ( "bytes" "database/sql" "database/sql/driver" "fmt" _ "github.com/lib/pq" "strconv" "strings" ) // 自定义支持类型 type Point s

[原创]PostgreSQL中十进制、二进制、十六进制之间的相互转换

在PostgreSQL中,二进制.十进制.十六进制之间的转换是非常方便的,如下: 十进制转十六进制和二进制 mydb=# SELECT to_hex(10); to_hex -------- a (1 row) mydb=# SELECT 10::bit(4); bit ------ 1010 (1 row) 十六进制转十进制和二进制 mydb=# SELECT x'A'::int; int4 ------ 10 (1 row) mydb=# SELECT x'A'::bit(4); bit -