EF+postgresql中的一些问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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换了一下!成功!!!

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

以上是关于EF+postgresql中的一些问题的主要内容,如果未能解决你的问题,请参考以下文章

EF添加关联的提示问题:映射从第 260 行开始的片段时有问题:

PostgreSQL 是不是支持表(片段)的透明压缩?

PostgreSQL 上的 EF Core 批量删除

在 EF6 中使用时态表 - PostgreSQL

EF CORE PostgreSQL - 检查列表的所有元素是不是包含在另一个列表中

EF6 自定义迁移表名