c# - 使用 EF6 创建 ddex 的 Postgresql 失败

标签 c# entity-framework visual-studio postgresql orm

我正在尝试使用 Entity Framework 6,并将其连接到 Postgresql 数据库。

我正在使用 npgsql.Entityframework,但在创建 ddex 文件时出现错误。 enter image description here

有人知道为什么吗?

谢谢。

最佳答案

安装 Npgsql,在 Entity FrameworkPostgreSql 之间工作:

  1. https://github.com/npgsql/npgsql/releases 下载并安装Setup_NpgsqlDdexProvider.exe .
  2. 打开 Visual-Studio,单击选项卡:TOOLS -> Setup Npgsql DbProviderFactories。 将打开一个窗口,您需要单击“确定”。

enter image description here

  1. 关闭 Visual-Studio 并使用记事本以 管理员 打开 .NET 的两个 ma​​chine.config 文件。

我们需要编辑两个文件,您可以在路径中找到该文件:

  • C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config
  • C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config

将流动元素添加到文件中:

<system.data>
  <DbProviderFactories>
    <remove invariant="Npgsql"/>
    <add name="Npgsql Data Provider"
         invariant="Npgsql"
         description=".Net Data Provider for PostgreSQL"
         type="Npgsql.NpgsqlFactory, Npgsql, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7"
         support="FF" />
  </DbProviderFactories>
</system.data>
  1. 在需要的项目中重新打开 Visual-Studio。
  2. 通过 Nuget 安装 Entity Framework 。
  3. 打开包管理器控制台并插入命令:

    Install-Package EntityFramework6.Npgsql
    

检查所需的 DLL 是否为引用,如下所示:

enter image description here

如果没有手动添加DLL。应该在路径上:

  • C:\Users\YOURCOMPUTERNAME\documents\visual studio 2015\Projects\PostgreSqlVsEfwDemo\packages\Npgsql.3.0.5\lib\net45\Npgsql.dll
  • C:\Users\ YOURCOMPUTERNAME\documents\visual studio 2015\Projects\PostgreSqlVsEfwDemo\packages\EntityFramework6.Npgsql.3.0.5\lib\net45\EntityFramework6.Npgsql.dll
  1. 打开 App.config\Web.config 并添加两个元素:

    • entityFramework -> providers 中的 provider 元素。这样:

    • DbProviderFactories 中的提供者元素。这样:

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

如果<system.data>元素不存在,全部添加。

  1. 现在让我们像这样添加实体数据模型:
    • 选择“来自数据库的 EF 设计器”

enter image description here

  • 点击“新建连接”

enter image description here

  • 选择“PostgreSQL 数据库”作为数据源: enter image description here

  • 填写字段:

    • 主持人
    • 用户名
    • 密码
    • 端口
    • DATABASE(最后填写此字段。)

enter image description here

  1. 单击“测试连接”以查看它是否有效。

  2. 像往常一样继续使用 Entity Framework。

希望对你有帮助。

This document Npgsql Docs 确实帮助了我,但仍然存在问题。

关于c# - 使用 EF6 创建 ddex 的 Postgresql 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35570400/

相关文章:

c# - 通过 Azure 函数显示 Azure Blob 存储中的文件

c# - Blazor 服务器端项目中的内存泄漏

c# - Entity Framework - System.StackOverflowException

c++ - fatal error C1083 : Cannot open include file: 'xmemory' : No such file or directory

c# - 为什么我不能在 Windows 手机编程中使用 FindResource()?

c# - 使用 Newtonsoft Json.Net 反序列化为 IEnumerable 类

c# - 仅当所有查询都成功执行时才对数据库进行更改

c# - 组合来自不同表的多个 Select 语句

c++ - 文件修改或文件打开时的断点

visual-studio - 使用Visual Studio强制引用为绝对引用