【问题标题】:Postgresql, Entity Framework and Mono 3Postgresql、实体框架和 Mono 3
【发布时间】:2014-02-27 02:01:58
【问题描述】:

我正在尝试让 EF 在 Linux 平台上与 Postgresql 一起工作。当我尝试连接到数据库时,出现以下错误:无法找到或加载已注册的 .Net Framework Data Provider 'Npgsql Data Provider'。 我的 app.config 文件:

<?xml version="1.0" encoding="utf-8"?>
  <configuration>
    <configSections>
      <section name="entityFramework"
        type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework" />
    </configSections>
    <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, Version=4.0.0.0, Culture=neutral" />
      </DbProviderFactories>
    </system.data>
    <connectionStrings>
      <add name="MinDatabase" connectionString="Server=localhost;Port=5432;Database=postgres;User Id=postgres;Password=;CommandTimeout=20;" 
        providerName="Npgsql Data Provider" />
    </connectionStrings>
  </configuration>

如何让 Mono 加载数据提供者?

【问题讨论】:

    标签: postgresql entity-framework-4 mono monodevelop


    【解决方案1】:

    错误消息包含不变名称,因此它正在寻找具有不变名称“Npgsql Data Provider”的内容,并且您专门将 invariantName 设置为 Npgsql。因此,也许可以尝试更改为在整个配置中使用相同的名称,如下所示:

    <system.data>
      <DbProviderFactories>
        <remove invariant="Npgsql"></remove>
        <add name="Npgsql" 
          invariant="Npgsql" 
          description=".Net Framework Data Provider for Postgresql Server" 
          type="Npgsql.NpgsqlFactory, Npgsql, Version=4.0.0.0, Culture=neutral" />
      </DbProviderFactories>
    </system.data>
    <connectionStrings>
      <add name="MinDatabase" connectionString="Server=localhost;Port=5432;Database=postgres;User Id=postgres;Password=;CommandTimeout=20;" 
        providerName="Npgsql" />
    </connectionStrings>
    

    希望有效果

    【讨论】:

      【解决方案2】:

      你从哪里下载 Npgsql?如果您使用的是来自官方版本的 Npgsql,那么您的问题是程序集的 Version 属性。支持 EF 4.x 的 Npgsql 有 2.0.14.3 版,支持 EF 6 的 Npgsql 有 2.1.0 版。没有版本 4.0.0.0。

      有关将 Npgsql 与实体框架一起使用的更多信息,请查看:

      How to integrate PostgreSql with EntityFramework 6.0.2?

      Entity Framework 6 with Npgsql

      http://fxjr.blogspot.com.br/2014/02/using-entity-framework-6-with-npgsql-210.html

      希望对你有帮助。

      【讨论】:

        猜你喜欢
        • 2016-07-21
        • 2015-01-12
        • 2014-04-04
        • 1970-01-01
        • 1970-01-01
        • 2020-09-12
        • 2018-06-13
        • 1970-01-01
        • 2012-09-24
        相关资源
        最近更新 更多